在正确的时间显示键盘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]放在viewWillLayoutSubviewsviewDidLayoutSubviews 。 不幸的是,在推送viewController时这样做,而不是在popup时(键盘不显示)。

我设法在viewWillLayoutSubviews推断你的解决方法来强制它的工作。

 - (void)viewWillLayoutSubviews { if (![self.textField1 isFirstResponder] && ![self.textField2 isFirstResponder] && ...) { [self.textField1 becomeFirstResponder]; } } 

这对我来说都是为了推进堆栈,并在解散模态视图控制器后。