成为第一响应者没有animation

有没有办法使UITextField成为没有键盘animation的第一响应者? 那就是让键盘刚出现?

基本上,我推UIViewController UIViewController具有UITextField的第二个UIViewController ,当第二个视图控制器popup堆栈,我希望UITextField立即有第一响应者状态,以便当第二个视图控制器被popup时,用户永远不会注意到文本字段不是第一响应者。

现在我拥有了它,当它popup时,键盘使屏幕动起来,但是我不想让它看到。

有任何想法吗?

你可以像这样使用UIViewanimation

 [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:0.0]; [UIView setAnimationDelay:0.0]; [UIView setAnimationCurve:UIViewAnimationCurveLinear]; [textField becomeFirstResponder]; // <---- Only edit this line [UIView commitAnimations]; 

这将导致键盘突然出现。

你可以用-resignFirstResponder做同样的-resignFirstResponder

斯威夫特

  UIView.beginAnimations(nil, context: nil) UIView.setAnimationDuration(0.0) UIView.setAnimationDelay(0.0) someTextView.resignFirstResponder() UIView.commitAnimations() 

只要将它设置为-viewDidAppear的第一个响应者,以使用户永远不会注意到已经失去其状态的字段。

 -(void)viewWillAppear:(BOOL)animated { if ([self isViewLoaded] && self.textField) [self.textField becomeFirstResponder]; [super viewWillAppear:animated]; } 

如果你喜欢,我已经使用这个代码在Dropbox上放了一个简短的示例项目。

我是,确定你使用的是什么版本的iOS,或者你在什么时候调用becomeFirstResponderviewWillAppear:调用[textFieldReference becomeFirstResponder] viewWillAppear:对于iOS5 / iOS6,似乎按照你希望的方式工作:

它只是在视图控制器将显示它的视图(这是如果你不手动处理视图控制器的层次结构),并且只要它出现在导航控制器键盘已经提出和文本字段有焦点之前被调用。

也就是说,我没有听说过的公开方式可以指定键盘外观样式。