UITextView
を入力したときに見つかったリターンキーを無効にしようとしています。 UITextField
にあるようなページインデントをテキストに含めないようにします。これは私がこれまでに持っているコードです:
- (BOOL)textView:(UITextView *)aTextView shouldChangeTextInRange:(NSRange)aRange replacementText:(NSString*)aText
{
if ([aTextView.text isEqualToString:@"\r\n"]) {
return NO;
}
何か案は?
このように使ってみてください。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if([text isEqualToString:@"\n"])
{
[textView resignFirstResponder];
return NO;
}
return YES;
}
魔法のハードコードされた文字列を使用しない別の解決策は次のとおりです。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText: (NSString *)text {
if( [text rangeOfCharacterFromSet:[NSCharacterSet newlineCharacterSet]].location == NSNotFound ) {
return YES;
}
return NO;
}
Swift 3+ add:
_guard text.rangeOfCharacter(from: CharacterSet.newlines) == nil else {
return false
}
_
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool
の先頭に