我正在尝试让我的应用变得聪明。
我有 5 个 UITextField
对象堆叠在一起。我希望用户能够在第一个 UITextField
中输入内容,然后按键盘上的“下一步”并将焦点移至下一个 UITextField
。
我的策略是拥有一个 UITextField
对象数组,当调用 TextFieldOnEditingDidEnd
时,我会调用“BecomeFirstResponder()
”在当前选定的 UITextField 之后出现的文本字段上。
此策略在 ios 7.x 上运行良好,但在 ios 6 中会导致堆栈溢出。
所以,我想知道我调用“BecomeFirstResponder()
”这一事实是否会强制在我刚刚创建的文本字段上调用 TextFieldOnEditDidEnd()
第一响应者。
是否有人知道对 BecomeFirstResponder()
的调用是否强制对 TextFieldOnEditDidEnd()
的调用?此外,此行为是否从 iOS 6.x 更改为 iOS 7.x?
谢谢
最佳答案
适用于 iOS 6 和 iOS 7 的解决方案是使用延迟性能。在您的 TextFieldOnEditingDidEnd
中,不要直接调用 becomeFirstResponder
;相反,在 dispatch_after
函数调用中以微小的延迟调用它。这将允许第一个方法在第二个方法开始之前结束,从而打破无限循环。
关于ios - 从 TextFieldOnEditingDidEnd 内部调用 BecomeFirstResponder 时,iOS 6.1 中的 StackOverflow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23858333/