轉自:http://leopard168.blog.163.com/blog/static/168471844201422121310352/
-(BOOL)textFieldShouldReturn:(UITextField*)textField {
[textField resignFirstResponder];
returnYES;
}
2. 通過 Done鍵的 DidonExit method,來 resignFirstResponder;
3. 點擊編輯框的背景圖,讓鍵盤消失。 方法: 將背景view 設為: UIControll。 UIView本身不能響應事件,而UIcontroll 是可以響應事件的。 UIControll 繼承於 UIView; 通過調用 UIControll的 Touch Down 事件,讓鍵盤消失;
4. 放置一個 UIButton ,將這個UIButton 布滿全屏,當點擊非編輯區域時,其實就是點擊這個巨型的Button。 在這個button 事件中, resignFirstResponder 即可。
-(IBAction)backgroundTap:(id)sender {
[self.nameTextFieldresignFirstResponder];
[self.passwordTextFieldresignFirstResponder];
}
說明:這個method 模擬了用戶的兩種行為:
1.點擊keyboard上的done鍵,讓鍵盤消失;
2.點擊編輯框以外的區域,讓鍵盤消失。
特別說明一點:通過布滿全屏的Button,這種方法要求:這個巨型的Button一定要放在最底層。否則的話,編輯框將無法接受輸入的事件。
方案點評:
UITextFieldDelegate和UIControll方案,處理鍵盤消失問題,這是一種大智慧。而巨型Button和 didOnExit 方法,雖然也能用,但從軟件編程思想上看,只能算是一種小聰明罷了。
小結:
只要有輸入框存在,就得處理如何讓鍵盤消失的問題。當然,你可以僅僅處理點擊“done”按鈕,來讓鍵盤消失。但為了讓用戶有更好的體驗,需要同時處理非編輯框的區域的事件響應。