如何让键盘在我的 UITableView 中与我的 UITextField 一起显示?

Posted

技术标签:

【中文标题】如何让键盘在我的 UITableView 中与我的 UITextField 一起显示?【英文标题】:How can I get the keyboard to display with my UITextField in my UITableView? 【发布时间】:2012-01-31 22:29:11 【问题描述】:

我在UITableViewCell 中有一个UITextField,在一个UITableView 中。所有这些都在 Interface Builder 中定义。 UITableView 连接到 UITableViewController 并设置为其数据源和委托。 UITextField 通过 IBOutlet/property textEmail 引用。如果重要的话,所有这些都在选项卡式视图中。所有这些都启用了用户交互。

一切正常,但选择UITextField 时键盘不显示。我可以看到textFieldDidBeginEditing 被调用,但没有键盘。我尝试在viewWillAppear 中调用becomeFirstResponder 并调用它,但仍然没有键盘:

- (void)viewWillAppear:(BOOL)animated 
    NSLog(@"View will appear");
    [textEmail becomeFirstResponder];

我还尝试将调用直接放入 textFieldDidBeginEditing 以及连接到具有相同结果的触摸事件的 IBAction

【问题讨论】:

【参考方案1】:

您一次只有一个自定义 tableviewcell 吗?如果是这样,那么不使用 tableview 来做你想做的事情会容易得多。

如果你有多个单元格(或一个单元格),那么你需要确保你的类是一个 UITextFieldDelegate。然后在您的 cellForRowAtIndexPath 函数中获取当前文本字段并将该文本字段的委托分配给 self。

然后将以下函数添加到您的实现中:

- (void)textFieldDidBeginEditing:(UITextField *)textField 

     [textField becomeFirstResponder];

【讨论】:

我可能应该明确指出我确实实现了UITextFieldDelegate,但正如我原来的帖子所述,我已经尝试将becomeFirstResponder 放入textFieldDidBeginEditing。我确实有多个自定义单元格,但只有一个这种特定类型。我也已经将UITextFielddelegate 设置为UITableViewController

以上是关于如何让键盘在我的 UITableView 中与我的 UITextField 一起显示?的主要内容,如果未能解决你的问题,请参考以下文章

如何让 UI 组件与我的 UITableView 一起滚动

在我的 iOS 应用程序中与我的外部附件通信以播放流中的视频

如何设置正确的 Ruby 版本以在 Aptana 3 中与我的 Rails 5 项目一起使用?

仅当键盘覆盖视图时如何更改 UITableView 内容插图?

如何在 scikit learn 中将特定课程与我的词袋配对

如何在 UITableView 中激活下一个和上一个 UITextField?