ios - 从 TextFieldOnEditingDidEnd 内部调用 BecomeFirstResponder 时,iOS 6.1 中的 StackOverflow

标签 ios ios7 ios6 uitextfield becomefirstresponder

我正在尝试让我的应用变得聪明。

我有 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/

相关文章:

ios - 如何在 ViewController 顶部设置标题

ios - ScrollView 中的手势识别器不起作用

iphone - 模拟器设置为横向模式iOS时 View 不滚动

ios - 删除 iOS7 中的后退箭头

ios - iOS 7 API 和 iOS 6 API 之间的差异

ios - View 是否可以在 iOS7 上投影?

iphone - 设置 UITableViewCell :textLabel:text 时应用程序崩溃

ios - 在 iOS 中的 GMSMapView 上绘制两地之间的路线

ios - 在 IOS6 SDK 上编译最新版本的 admob 时不断收到错误消息

iphone - mySLComposerSheet 上的格式字符串未使用错误数据参数