我正在展示另一個UIViewController的UIViewController。所呈現的視圖控制器實現viewDidAppear這樣:UITextField如何在viewDidAppear中調用becomeFirstResponder減慢當前動畫速度?
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self.addressTextView becomeFirstResponder];
}
但是,如果我實現viewDidAppear這樣的:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self.addressTextView performSelector:@selector(becomeFirstResponder) withObject:nil afterDelay:0.0f];
}
有演示文稿中的動畫沒有明顯的延遲。
我的主要問題是,有沒有人知道是否有另一種方式使文本字段成爲第一響應者,而不會延遲我目前的動畫?我不認爲第二種解決方案是乾淨的。我依賴於執行選擇器的一些實現細節來獲得我想要的功能。我寧願不。
我也很好奇,爲什麼第一種方法會出現這樣的延遲,以及第一種方法與第二種「幕後」方法的區別。
編輯:也許值得注意的是,當前視圖控制器動畫中的延遲僅出現在第一次呈現時。