2011-03-11 104 views
0

因此,基本上我需要知道是否有辦法讓觀察者在鍵盤被隱藏時調用另一個方法。等待鍵盤隱藏

我遇到的問題是在解散鍵盤後,我提交了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; 
} 

的問題是,該鍵盤沒有完全隱藏與翻蓋perfomed,所以我需要一種方法來等待它。

回答

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:(這是方法你動畫邏輯將駐留)

+0

+1好的答案,我剛剛添加了一個具體的例子,關閉了我的答案,以幫助。 – theChrisKent 2011-03-11 15:10:19

+0

謝謝,大多解決了我的問題,但另一個問題出現了,但可以通過BOOL輕鬆解決:D – 2011-03-11 15:22:57