iPhone - UITextView的问题

时间:2009-05-20 19:57:34

标签: iphone keyboard uitextview

这可能是一件容易的事情,但我无法弄明白 - 如何在textview中结束编辑?怎么才能让键盘消失?或者我必须在外面点击才能让它消失?

4 个答案:

答案 0 :(得分:10)

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

搜索“Apple文档UITextView”会为您提供this link课程文档。同样,here is UITextViewDelegate的文档。

搜索“UITextView简单示例”会为您提供此useful example

搜索“UITextView关闭键盘”,第一次点击似乎是answer your question exactly。 (虽然他在返回键上取消了键盘,这可能不是你想要的。)(编辑 - 从你的第二个评论来看,它正是你想要的。)

P.S。上面的人是正确的,如果有点简洁(可以理解)。您需要实现UITextViewDelegate。在该委托中,如果要在返回键上隐藏键盘,请实现shouldChangeTextInRange,查找@“\ n”并在第一个响应者处获得它。或者,在您的用户界面中添加“完成编辑”按钮,并在用户按下时重新签署第一响应者。

答案 1 :(得分:2)

非常简单:

[myTextField resignFirstResponder]; 

会做到这一点。

答案 2 :(得分:2)

结束编辑的一种方法是在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];

答案 3 :(得分:0)

[yourTextField resignFirstResponder];

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