等待键盘隐藏

时间:2011-03-11 14:52:33

标签: iphone objective-c ios

所以,基本上我需要知道是否有办法让观察者在隐藏键盘时调用另一个方法。

我遇到的问题是,在解除键盘后,我提交2个动画,一个将视图移动到原始位置(因为我向上移动视图以便用户可以在键入时看到文本字段)和动画翻转查看但翻转发生在键盘完全隐藏之前,因此我有一点图形故障。

我已经尝试过sleep(),而另一种没有运气的等待方法。

守则基本上就是这个

- (BOOL)textFieldShouldReturn:(UITextField *)textFieldi{

[textFieldi resignFirstResponder];
     [UIView beginAnimations:nil context:NULL];

     [UIView setAnimationDuration:1.0];

     [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES];

     [self.view exchangeSubviewAtIndex:1 withSubviewAtIndex:0];

     CuantoFaltaiOSAppDelegate * del = [CuantoFaltaiOSAppDelegate instance];

     del.headerView.frame = CGRectMake(0, 20, del.headerView.frame.size.width, del.headerView.frame.size.height);

     [UIView commitAnimations];

     return YES;
}

问题是键盘没有完全隐藏,翻转已经完成,所以我需要一种等待它的方法。

1 个答案:

答案 0 :(得分:6)

注册UIKeyboardDidHideNotification通知。

[[NSNotificationCenter defaultCenter] addObserver:(id)
                                         selector:(SEL)
                                             name:(NSString *)
                                           object:(id)];

示例:

订阅UIKeyboardDidHideNotification,如下所示(将其放在viewWillAppear:方法中):

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidHide:) name:UIKeyboardDidHideNotification object:nil];

这假设您有一个名为keyboardDidHide:的方法(这是您的动画逻辑所在的位置)