在iOS 6中,我习惯在 viewDidLoad
中显示键盘 .
- (void)viewDidLoad
{
[super viewDidLoad];
[txtField becomeFirstResponder];
}
这样,当navigationController推送新的viewController时,键盘已经存在,从左到右平滑地动画,避免自下而上的动画 .
在iOS 7中,这种行为似乎已经破裂 .
如果我在 viewDidLoad
中添加 [txtField becomeFirstResponder]
,键盘出现在推动动画的中间,已经处于最终位置:一个令人不快的效果!!
我试图在 viewWillAppear
中移动 [txtField becomeFirstResponder]
,但最终结果没有改变 .
你知道一种方法来恢复iOS 6的行为,将新的viewController和键盘全部推到一起吗?
编辑:使用计时器也不起作用...无论我设置什么时间延迟,键盘只在推动动画结束时显示 .
到目前为止,我最好的尝试是将 [txtField becomeFirstResponder]
放在 viewWillLayoutSubviews
或 viewDidLayoutSubviews
中 . 不幸的是,这样做是在推送viewController时工作但不是在弹出时(键盘没有出现) .
1 回答
我已设法在
viewWillLayoutSubviews
中推断您的解决方法以强制它起作用 .这对我来说都是有用的,无论是推入堆栈还是解雇模态视图控制器 .