【发布时间】:2013-10-02 03:49:38
【问题描述】:
在 iOS 6 中,我习惯于在 viewDidLoad 中显示键盘。
- (void)viewDidLoad
{
[super viewDidLoad];
[txtField becomeFirstResponder];
}
这样,当navigationController推送新的viewController时,键盘已经存在,动画从左到右流畅,避免了自底向上的动画。
在 iOS 7 中,这种行为似乎被破坏了。
如果我在viewDidLoad 中添加[txtField becomeFirstResponder],键盘会出现在推动动画的中间,已经在其最终位置:令人不快的效果!!
我尝试将[txtField becomeFirstResponder]移动到viewWillAppear,但最终结果没有改变。
您知道一种方法可以恢复 iOS 6 的行为,同时将新的 viewController 和键盘推送到一起吗?
编辑:使用计时器也不起作用...无论我设置什么时间延迟,键盘仅在推动动画结束时显示。
到目前为止,我最好的尝试是将[txtField becomeFirstResponder] 放入viewWillLayoutSubviews 或viewDidLayoutSubviews。不幸的是,在推送 viewController 时这样做有效,但在弹回时无效(键盘没有出现)。
【问题讨论】:
-
在 ios 7 中使用计时器延迟 0.5 秒。
-
感谢您的建议,不幸的是它对我不起作用。请看一下我的编辑。
标签: iphone ios objective-c keyboard ios7