如何自动加载键盘(iOS SDK)?

很简单的问题:

我得到了一个由两个文本框组成的视图。 加载视图时,我想让键盘自动popup并聚焦第一个字段。

我怎么做? (在代码?在IB?)

非常感谢! 芥末

在你的viewDidAppear:方法调用[yourTextField becomeFirstResponder]

[myTextField becomeFirstResponder]应该做的伎俩。

还要确保你实现了可以隐藏第一个响应者的UITextFieldDelegate方法。

那么,我知道这个问题已经被多次回答了。 在调用viewDidAppear方法后,显示键盘需要时间。

viewDidAppear的原因当然是消失后在视图生命周期中调用的最后一个方法。 另外,如果在内存中找不到键盘,也需要创build键盘。 所以,第一次需要更多的时间,正如我所料。 这些原因造成了一点点延误,正在扰乱我。

我总是在viewWillAppear方法中调用becomeFirstResponder方法来减less键盘的显示时间,但是我需要在viewDidAppear方法之后显示键盘才不会失去平滑的animation。

所以,这个小技巧我想出了一些魅力。 我在模拟器和设备上进行了testing。 如果在你的情况下不能正常工作,你没有别的select,只能按照接受的答案解释。

那么,我正在做什么是创build一个UITextField (你可以使用任何视图,与键盘交互),并调用成为和第一个响应方法将我的键盘放入内存,如果还没有创build。 所以,第二次,你会得到caching键盘加速键盘显示时间。 那么,我把这些代码先前的视图控制器,我要显示键盘后。

这里是代码:

 - (void)viewDidAppear:(BOOL)animated { UITextField *textField = [[UITextField alloc]init]; [self.view addSubview:textField]; [textField becomeFirstResponder]; [textField resignFirstResponder]; [textField removeFromSuperview]; } 

作为对MarkGranoff答案的澄清;

如果将[yourTextField becomeFirstResponder]放在viewDidLoadviewWillAppear ,它将显示键盘,而不会等待一becomeFirstResponder (如果将becomeFirstResponder调用放在viewDidAppear方法内,就会发生这种情况)。