1

我有一个动作,允许我提出一个ModalViewController并显示UITextField作为第一个响应者,问题是当这个ModalViewController会出现它需要一点时间,原因是键盘,当我抓住代码viewDidAppear键盘需要一点时间才能显示出来,所以我怎么才能让UIViewController快速出现?键盘使UIView缓慢出现时?

- (IBAction)goToModalViewController 
{  
    ModalSearchViewController *msvc = [[ModalSearchViewController alloc] init]; 
    self.msvc.context = context; 
    self.msvc.delegate = self; 
    [self.msvc setModalTransitionStyle:UIModalTransitionStyleCrossDissolve ];                                                                                      
    [self presentModalViewController:msvc animated:YES]; 
} 

的ModalViewController的viewWillAppear中:

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:YES]; 

    [findTextField becomeFirstResponder]; 
} 

回答

1

尝试这样的viewWillAppear

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    //[findTextField becomeFirstResponder]; 
    [findTextField performSelector:@selector(becomeFirstResponder) withObject:nil afterDelay:0.3]; 
} 
+0

您可以更改延迟取决于您希望延迟多少时间。 – Ilanchezhian 2012-01-05 06:34:33