ios - 返回 UITextView

标签 ios objective-c uitextview

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/

相关文章:

iphone - 如何使用phonegap 编译适用于iPhone 的条码扫描仪?

ios - 如何从接口(interface)中的类继承?

objective-c - 按层次结构消除 UINavigationController 中所有呈现的 ViewControlelrs

ios - 您如何将 UITextView 作为 UIView 的 subview 居中?

ios - iOS 6 上的 UIWebView 和客户端证书

c# - 如何避免 Xamarin 表单 iOS 中显示和隐藏 UI 控件的波动?

objective-c - 如何为 CATextLayer() 设置系统字体?

ios - UINavigationBar setTranclucent 不起作用

ios - 在自动布局中隐藏不断增长的 UItextview 的键盘。如何克服这个?

ios - iOS 拼写检查器存储哪些信息?