6

这可能是一件容易的事,但我就是想不通 - 我如何结束编辑文本视图?如何让键盘消失?还是我必须在它外面点击才能让它消失?

4

4 回答 4

10

首先,像这样一个(说实话)相当简单的问题让我想知道您是否尝试过阅读文档或在互联网上搜索。

搜索“Apple 文档 UITextView”会为您提供该类文档的链接。同样,这里是UITextViewDelegate 的文档。

搜索“UITextView 简单示例”会为您提供这个有用的示例

搜索“UITextView 关闭键盘”,第一次点击似乎准确地回答了您的问题。(尽管他在返回键上关闭了键盘,这可能不是您想要的。)(编辑-从您的第二条评论看来,这正是您想要的。)

PS上面的人是正确的,如果有点简洁(可以理解)。你需要实现一个 UITextViewDelegate。在该委托中,如果您想在返回键上隐藏键盘,请实现 shouldChangeTextInRange,查找 @"\n" 并在收到第一响应者时辞职。或者,在您的 UI 中添加“完成编辑”按钮,并在用户按下它时退出第一响应者。

于 2009-05-21T06:54:35.183 回答
2

好简单:

[myTextField resignFirstResponder]; 

会成功的。

于 2009-05-20T20:01:24.840 回答
2

一种结束编辑的方法,在 textView 外部点击,并不是完全简单的。选择其他文本视图或文本字段或激活导航控件将触发...

- (void)textViewDidEndEditing:(UITextView *)textView

...在您指定为 textView 代表的任何对象上。您可以通过调用...自己触发此操作

- (BOOL)endEditing:(BOOL)force

...在包含您的文本字段的视图上。

假设我在 UITableViewCell 内(在 UITable 内)有一个 UITextView。我想通过点击表格来结束编辑。我可以这样做:

- (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];

于 2012-04-08T06:58:04.853 回答
0
[yourTextField resignFirstResponder];

将使键盘消失并结束编辑。

于 2009-05-20T20:01:34.697 回答