在编辑字段时,我在UITextField
中设置了一个UITableViewCell
,用于模仿苹果自己的“联系人”应用程序中的控件。除了一个小小的UI错误外,所有这些基本上都可以正常工作。UITableView
是从XIB创建和加载的UIViewController
的一部分,但是正在tableView:cellForRowAtIndexPath:
中以编程方式创建文本字段(并成为第一响应者),以便可以将其添加到单元格中。
这会导致轻微的键盘滞后,将 View Controller 推到堆栈上,之后很快就会出现键盘。
但是,“联系人”应用程序将其全部推送为一个。
我该如何纠正这种滞后?我尝试将文本字段的创建和第一个响应者移至viewDidLoad
,但这没有帮助。我什至尝试创建layoutSubviews
并从 View Controller 外部调用它,然后再将其推送到堆栈中。
不幸的是,直到文本字段成为单元格的一部分时,才看起来好像该文本字段实际上成为了第一个响应者-早于 View 被插入之后。
最佳答案
您必须让UITextField
成为viewWillAppear
中的第一响应者。
我在这里创建了一个示例项目:
https://github.com/lukaswuerzburger/pushed-keyboard
关于ios - UITextField焦点在导航 View 推送之前?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/432485/