当选择返回按钮时,尝试在UITextView中返回键盘时遇到问题。

这是我的代码:

- (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;

}

任何想法为什么这给我问题?视图只是换行,不返回。

最佳答案

最有可能的是,您的代码根本无法到达要求文本视图辞退第一响应者的地步。尝试将resignFirstResponder方法调用放在所有return语句之上。

- (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的键盘不遵循界面准则”。

上述方法是一种简单的技巧,如果用户输入包含\n(换行符)字符的文本,则无法正常工作。

关于ios - 返回UITextView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25000791/

10-11 22:22
查看更多