【问题标题】:Keyboard doesn't dismiss for TextField in UITableViewCellUITableViewCell 中的 TextField 的键盘不会关闭
【发布时间】:2012-02-17 12:24:52
【问题描述】:

iOS 键盘有一个奇怪的问题。

在我的应用程序中,我在一些 UITableViewCells 中使用 UITextFields。如果当前文本字段失去焦点,我想关闭键盘。

这是我到目前为止所做的:

  • 设置 <UITextFieldDelegate> 并将 [textField resignFirstResponder] 添加到 textFieldDidEndEditing:

  • -> textFieldDidEndEditing 被调用,但键盘保持不变。

  • 将所有 TextField 添加到数组中,循环遍历所有对象并调用 resignFirstResponder

  • ->没有效果

  • 在 textFieldDidEndEditing 中调用 [self.tblView endEditing:YES]。

  • -> 键盘没有消失。

但是使用完成按钮关闭键盘效果很好(使用textFieldShouldReturn

我做错了什么?

编辑:我为我的问题制作了一个视频:http://www.youtube.com/watch?v=Zuz5rCv2GCo

【问题讨论】:

  • 文本字段如何知道编辑结束了?
  • 当我进入另一个文本字段退出文本字段时
  • 然后你在下一个文本字段 -> 键盘可见。
  • 通常你是对的!但我在 TableView 中使用 TextFields。所以如果我点击另一个 TextField(在另一行),第一个失去焦点,第二个没有焦点。 (并且键盘保持可见)
  • 我制作了这个问题的视频..>Youtube<有什么想法吗?

标签: ios keyboard tableview textfield


【解决方案1】:

尝试执行以下操作:

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

-(void)textFieldDidEndEditing:(UITextField *)textField
{
    [self resignFirstResponder];
}

【讨论】:

  • 另外,尝试查看在编辑后单击其他单元格时是否调用了 didSelectRowAtIndexPath。如果是,则从那里调用 resignFirstResponder。
猜你喜欢
  • 1970-01-01
  • 2020-05-17
  • 1970-01-01
  • 1970-01-01
  • 2011-12-16
  • 2015-12-19
  • 2011-09-19
  • 2021-07-05
  • 1970-01-01
相关资源
最近更新 更多