今天在项目中遇到了需要在text view中输入完内容后,按return(完成)按钮来结束编辑并同时隐藏键盘。但是,每次按这个返回键的时候,得到的只能是换行。
如果是UITextViewField,我们可以使用其代理来结束并收回键盘:
[textField resignFirstResponder];
return YES;
}```
对于UITextView,可以有以下几种解决方案:
- 添加一个button,并添加点击事件来调用`-resignFirstResponder`方法来收回键盘;
- 添加点击事件:
``` -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
[self.view endEditing:YES];
}
- 如果text view 放在tableView上,我们可以使用代理方法
- scrollViewDidScroll:
来实现
[self.contentTextView resignFirstResponder];
} ```
- 使用text view的代理方法`textView:shouldChangeTextInRange:replacementText:`
```-(BOOL)textView:(UITextView *)textViewshouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if([text isEqualToString:@"\n"]) {
[textView resignFirstResponder];
return NO;
}
return YES;
}
网友评论