iPhone应用程序:UITableViewController在单元格中使用UITextView,无法摆脱键盘

时间:2012-01-21 19:03:22

标签: iphone ios keyboard uitextview uitableview

我知道之前已经问过这个问题,但我找不到适用于我的问题的答案。 我有一个UITableViewController,它有第三行,里面装满了UITextView。

我对它的外观和输入文字的方式非常满意。 但是,一旦用户输入文本,我就无法找到摆脱键盘的方法。我希望能够在文本中使用实际\ n的返回按钮。

我已经到了这么远,按下上面的两行将使textView te resignFirstTransponder,但有没有办法在灰色背景上点击?

这是在从nib文件加载的UITableViewController中。 顺便说一下,我对iOS编程很陌生,所以答案越精细越好:)

谢谢!

3 个答案:

答案 0 :(得分:1)

许多应用程序遵循的模式是在键盘上方显示一个带有按钮的水平条。它可以包含一个done按钮,可以隐藏键盘。当然,你必须自己创建水平视图。

另一种方法是在其他地方启用触摸识别器,在外面的水龙头上隐藏键盘

答案 1 :(得分:0)

另一种方法是在键盘上添加一个工具栏,其中包含一个可以解除它的“完成”按钮。您可以找到一些关于here的示例代码。一种方法是在用户选择不同的单元格时或者甚至在tableView滚动时关闭键盘。为此,您可以分别在-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath-(void)scrollViewDidScroll:(UIScrollView *)scrollView中添加相关代码。

答案 2 :(得分:0)

如果你的新手在iOS上,这会有点棘手。我在UITableViewCell中处理UITextView的方式是我创建一个自定义的UITableViewCell子类,其中包含UITextView的插座。 然后将接口构建器中的单元格设置为该子类。在CellForRowAtIndexPath中: 将代表设置为自己。然后在DidSelectRowAtIndexPath中基于indexPath调用TextView的委托,这样,如果触摸背景,keyBoard将关闭正确的行。如果您希望在用户触摸任何单元格时将其解除,只需调用委托而不指定indexPath。委托是TextViewShouldEndEditing:。如果你愿意,我会发布一些代码。