iPhone-UITextView存在问题

iPhone-UITextView存在问题,iphone,keyboard,uitextview,Iphone,Keyboard,Uitextview,这可能是一件容易做到的事情,但我就是搞不懂——如何结束编辑文本视图?我怎样才能让键盘消失?或者我必须单击它的外部才能让它消失吗?非常简单: [myTextField resignFirstResponder]; 我会成功的 [yourTextField resignFirstResponder]; 将使键盘消失并停止编辑。首先,像这样一个(老实说)相当简单的问题让我想知道您是否尝试过阅读文档或在internet上搜索 搜索“Apple documentation UITextView”可获

这可能是一件容易做到的事情,但我就是搞不懂——如何结束编辑文本视图?我怎样才能让键盘消失?或者我必须单击它的外部才能让它消失吗?

非常简单:

[myTextField resignFirstResponder]; 
我会成功的

[yourTextField resignFirstResponder];
将使键盘消失并停止编辑。

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

搜索“Apple documentation UITextView”可获得类文档。类似地,UITextViewDelegate的文档也会显示

搜索“UITextView简单示例”可以得到以下信息

在搜索“UITextView解除键盘”时,第一个点击似乎是。(尽管他在返回键上关闭了键盘,但这可能不是你想要的。)(编辑-从你的第二条评论来看,这似乎正是你想要的。)


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

结束编辑的一种方法是点击文本视图之外的按钮,这并不是很简单。选择其他文本视图或文本字段或激活导航控件将触发

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

现在每当我点击我的表格,我就结束编辑。而且,正如其他人所说,在
textView-didendediting
中,我应该确保调用
[textView-resignFirstResponder]

是的,google.com->SO充满了“相当简单的问题”,感谢上帝!我认为endEditing会在textView上调用resignFirstResponder。Endedit的好处在于,您不必知道当前正在编辑哪个textView。endEditing将为您找到它并关闭键盘。从文件中。此方法查看当前作为第一响应者的文本字段的当前视图及其子视图层次结构。如果找到一个文本字段,它将要求该文本字段辞去第一响应者的职务。如果force参数设置为YES,则从未要求该文本字段;它将被迫辞去职务