一. 通常情況下我們要顯示或隱藏鍵盤(pán)都是通過(guò)代理監(jiān)聽(tīng)的方式實(shí)現(xiàn)的例如:
- 遵循<UITextFieldDelegate>
[self.textfieldview becomeFirstResponder]; // textView成為第一響應(yīng)者,立即調(diào)出鍵盤(pán);
2.隱藏鍵盤(pán)時(shí), 釋放第一響應(yīng)者即可回收鍵盤(pán)
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
[self.textfield resignFirstResponder];
}```
***
二. 但有時(shí)候,我們需要處理在沒(méi)有任何輸入的時(shí)候,用戶僅僅拖動(dòng)了屏幕也可以退出鍵盤(pán),一種常見(jiàn)的方式是使用UIScrollView的代理方法,監(jiān)聽(tīng)拖動(dòng)事件,一旦發(fā)生拖動(dòng)則通過(guò)注銷第一響應(yīng)者的方式來(lái)退出鍵盤(pán);
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
[self.view endEditing:YES];
}
***
三. 其實(shí)IOS7.0系統(tǒng)中,UIScorllView中已經(jīng)為我們提供了一個(gè)屬性來(lái)判斷是否拖動(dòng)取消鍵盤(pán),這樣只需要通過(guò)設(shè)置這個(gè)屬性的值來(lái)決定UIScorllView是否在被拖動(dòng)的時(shí)候退出鍵盤(pán);
第一種方法: 當(dāng)布局使用StoryBoard時(shí), 我們可以指定某一個(gè)UI控件, 然后Keyboard-->dismiss on drag

***
第二種方法: 代碼
>這里指定當(dāng)點(diǎn)擊tableView時(shí) , 隱藏鍵盤(pán)
self.tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;
//UIScrollViewKeyboardDismissModeInteractive;