UITextView textview应该永远不要调用

问题描述

| 我有这样的UITextView设置:
    UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(10,40,280,240)];
    [textView setBackgroundColor:[UIColor greenColor]];
    [textView setFont:[UIFont fontWithName:@\"MyriadPro-Regular\" size:13]];
    [textView setTextColor:[UIColor blackColor]];
    [textView setText:@\"Your Message....\"];
    [textView setBackgroundColor:[UIColor clearColor]];
    [textView setDelegate:self];
    [textView setReturnKeyType:UIReturnKeyDone];
我期望当用户按下键盘上的“完成”按钮时,将调用方法(已实现):
- (BOOL)textViewShouldEndEditing:(UITextView *)textView {
    NSLog(@\"called\");
    [textView resignFirstResponder];
    return YES;
}
但是这种方法永远不会被调用。我在做什么错? 谢谢。     

解决方法

设置返回键类型时,它不会改变文本视图的行为。在
Return
上,它将在文本视图中添加换行符。因此,如果您不希望文本视图为多行,则可以捕获
\\n
resignFirstResponder
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
    if ( [text isEqualToString:@\"\\n\"] ) {
        [textView resignFirstResponder];
    }

    return YES;
}
顺便说一句,您辞去第一响应者身份后会叫“ 6”。 如果要在文本视图中保留换行符,则应考虑使用文本视图中的ѭ7。
here
就是一个例子。