2014-03-04 97 views
1

這行代碼在我的電子郵件textField editingDidEnd時運行。 NSLog運行,所以我知道功能運行,但鍵盤仍然不會消失。我已經將文本框作爲代理連接了。我確保故事板中的連接在那裏。它仍然不會改變。幫幫我。謝謝。即使代碼運行,resignFirstResponder也不關閉鍵盤

- (IBAction)emailDone2:(id)sender 
{ 
    [_email resignFirstResponder]; 
    NSLog(@"emailDone2"); 
} 

編輯* *我改變了代碼的指示,這還是什麼都不做。什麼也沒有變。

- (IBAction)emailDone2:(id)sender 
{ 
    [self.view endEditing:TRUE]; 
} 

回答

1

的問題是,你認爲誰是第一個響應並是誰第一響應者可能是不一樣的。幸運的是,已經有一種方法可以解決這個問題。嘗試使用

[topView endEditing:YES]; 

其中topView是最頂層的視圖。 endEditing將通過子視圖進行遞歸,找到第一響應者,並告訴它辭職第一響應者。這比跟蹤哪個子視圖要簡單得多。

keyboard not responding to resignFirstResponder中發現此問題,鏈接在此問題的側邊欄中。

+0

我不是100%的topView是什麼,這應該在我的程序中。我的viewController具有文本框,當用戶在其中一個完成並觸摸屏幕的任何其他位置時,我希望鍵盤消失。 –

+0

嘗試將它發送到您的主視圖控制器;它應該爲你找到第一響應者並告訴它將鍵盤送走。 –