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

3
我在UITableViewUITableViewCell里面有一个UITextField,所有这些都是在Interface Builder中定义的。 UITableView已连接到UITableViewController,并设置为其数据源和委托。 UITextField通过IBOutlet /属性textEmail引用。所有这些都在选项卡视图中,如果这很重要的话。 这些元素的用户交互都已启用。

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

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

我还尝试了直接在textFieldDidBeginEditing中调用,并且也尝试了将其放在与触摸事件相关联的IBAction中,但结果相同。

1个回答

0

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

如果你有多个单元格(或一个单元格),那么你需要确保你的类是UITextFieldDelegate。然后在你的cellForRowAtIndexPath函数中获取当前的textfield,并将textField的delegate分配给self。

然后在你的实现中添加以下函数:

- (void)textFieldDidBeginEditing:(UITextField *)textField 
{
     [textField becomeFirstResponder];
}

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接