问题描述
|
我有这样的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
就是一个例子。