在正确的时间显示键盘iOS7
在iOS 6中,我用于在viewDidLoad
显示键盘。
- (void)viewDidLoad { [super viewDidLoad]; [txtField becomeFirstResponder]; }
这样,当navigationController推动新的viewController时,键盘已经在那里,从左到右平滑的animation,并避免自下而上的animation。
在iOS 7中,这种行为似乎中断。
如果我在viewDidLoad
添加[txtField becomeFirstResponder]
,键盘会出现在推动animation的中间,已经到了最后的位置:一个不愉快的效果!
我试图在viewWillAppear
移动[txtField becomeFirstResponder]
,但最终的结果是不变的。
你知道一种方法来取回iOS 6的行为,推动新的viewController和键盘在一起吗?
编辑:使用计时器不工作任何时间延迟我设置,键盘只显示在推animation的结尾。
到目前为止,我最好的尝试是将[txtField becomeFirstResponder]
放在viewWillLayoutSubviews
或viewDidLayoutSubviews
。 不幸的是,在推送viewController时这样做,而不是在popup时(键盘不显示)。
我设法在viewWillLayoutSubviews
推断你的解决方法来强制它的工作。
- (void)viewWillLayoutSubviews { if (![self.textField1 isFirstResponder] && ![self.textField2 isFirstResponder] && ...) { [self.textField1 becomeFirstResponder]; } }
这对我来说都是为了推进堆栈,并在解散模态视图控制器后。