I am running into an issue when trying to return the keyboard in my UITextView when the return button is selected.
这是我的代码:
- (void)viewDidLoad {
self.captionArea.delegate = self
}
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
NSUInteger newLength = [self.captionView.text length] + [text length] - range.length;
return (newLength > 30) ? NO : YES;
if([text isEqualToString:@"\n"])
[textView resignFirstResponder];
return YES;
}
任何想法为什么这会给我带来问题? View 只是换行,而不是返回。
最佳答案
最有可能的是,您的代码根本不会到达您要求 TextView 辞去第一响应者的地步。试着把你的 resignFirstResponder
方法调用高于所有返回语句。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if ([text isEqualToString:@"\n"]) {
[textView resignFirstResponder];
return NO;
}
NSUInteger newLength = [textView.text length] + [text length] - range.length;
return (newLength > 30) ? NO : YES;
}
此外,您应该考虑切换到
UITextField
如果你想要做的只是一个简单的单行文本字段,因为 UITextView
没有提供隐藏键盘的标准方法。正如这个流行的 StackOverflow answer 中所解释的那样,“点击返回并隐藏 UITextView 的键盘不遵循界面指南”。上述方法是一种简单的 hack,如果用户输入包含
\n
的文本,则无法正常工作。 (换行符)字符。
关于ios - 返回 UITextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25000791/