存储指针并辞去第一响应者后无法重新聚焦 UITextField

Posted

技术标签:

【中文标题】存储指针并辞去第一响应者后无法重新聚焦 UITextField【英文标题】:Unable to refocus UITextField after storing pointer and resigning first responder 【发布时间】:2013-08-17 20:27:13 【问题描述】:

我正在使用一个分组的UITableView,每个都包含一个子类UITextField 作为其内容视图。子类UITextField 仅包含一个附加属性indexPath 以存储其在表中的位置。

我面临的问题是我想记录哪个文本字段是当前响应者,所以我在视图控制器中添加了一个UITextField 属性。我实现了textFieldDidBeginEditing 委托方法,当调用该方法时,textField 指针参数被存储为我的视图控制器的第一响应者属性。

在使用时,该字段最初是可聚焦的,但是如果我通过按下键盘上的Return 来结束编辑,键盘就会消失,我不再能够将焦点带回原始文本字段或任何其他字段表格中的文本字段。

如果我从textFieldDidBeginEditing 委托方法中删除self.firstResponder = (LKCTableViewTextField *)textField; 行,所有工作都按预期工作,但我没有将指向文本字段的指针设置为第一响应者。

有没有人遇到过这个问题或知道发生了什么?

谢谢,

埃里克

【问题讨论】:

【参考方案1】:

好的,抱歉没有正确理解,看看是否可以保存对文本字段的引用。

- (void)textFieldDidBeginEditing:(UITextField *)textField

    activeField = textField;

【讨论】:

真正的问题是我需要获取指向当前文本字段的指针而不是隐藏键盘。键盘被隐藏起来没有问题。如果我在编辑完成后不包含隐藏键盘的代码,但仍尝试将指针存储到正在编辑的文本字段,则没有文本字段可聚焦。 我还应该注意,我正在使用 ios 7 进行开发,如果这会有所不同的话。

以上是关于存储指针并辞去第一响应者后无法重新聚焦 UITextField的主要内容,如果未能解决你的问题,请参考以下文章

辞去 Push Segue 的第一响应者

辞去 ScrollView Touch 上的第一响应者

当要求 NSView 辞去第一响应者的职务时,如何获得 firstResponder-to-be?

iOS文本字段不辞职第一响应者

UITextField, becomeFirstResponder, resignFirstResponder

更改数组后无法在 Tableview 中重新加载数据?