iPhone - UITextView 问题
-
23-08-2019 - |
题
这可能是一件容易做的事情,但我就是不明白 - 如何结束编辑文本视图?我怎样才能让键盘消失?或者我必须在它外面点击才能让它消失?
解决方案
首先,(老实说)这样一个相当简单的问题让我想知道您是否尝试过阅读文档或在互联网上搜索。
搜索“Apple 文档 UITextView”会给你 这个链接 到类文档。相似地, 这是 UITextViewDelegate 的文档。
搜索“UITextView simple example”会给你这个 有用的例子.
搜索“UITextView关闭键盘”,第一个命中似乎是 准确回答你的问题. 。(尽管他在返回键上关闭了键盘,但这可能不是您想要的。)(编辑 - 从您的第二条评论看来,这正是您想要的。)
附:上面的人是正确的,虽然有点简洁(可以理解)。您需要实现一个 UITextViewDelegate。在该委托中,如果您想在返回键上隐藏键盘,请实现 shouldChangeTextInRange,查找 @" " 并在找到它时退出第一响应者。或者,在用户界面中添加“完成编辑”按钮,并在用户按下该按钮时退出第一响应者。
其他提示
非常容易:
[myTextField resignFirstResponder];
将达到目的。
以结束编辑时,TextView的外面攻的一种方式,是不完全微不足道的。选择其它文本视图或文本字段或激活导航控制将触发...
- (void)textViewDidEndEditing:(UITextView *)textView
...对任何对象,你已经被指定为TextView中的代表。您可以通过调用该触发自己......
- (BOOL)endEditing:(BOOL)force
...包含您的文本字段中的视图。
假设我有一个UITableViewCell内一个UITextView(一个UITable内侧)。我想启用编辑通过点击该表结束。我可以这样做:
- (void)viewDidLoad
{
[super viewDidLoad];
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapTable)];
[[self tableView] addGestureRecognizer:tapRecognizer];
[tapRecognizer release];
}
- (void)didTapTable
{
[[self tableView] endEditing:YES];
}
现在,每当我点击我的表,我最终编辑。而且,正如其他人所说,在textViewDidEndEditing
我一定要打电话[textView resignFirstResponder];
[yourTextField resignFirstResponder];
将使键盘消失和编辑结束。