關閉虛擬鍵盤一般使用在使用UITextField和UITextView這兩種控件時,當編輯完成時或者需要關閉鍵盤時使用。
這里有兩種關閉鍵盤方法:(*都可以使用此方法不論多少個編輯控件即可直接關閉:[self.view endEditing:YES];)
操作一、 編輯時打開鍵盤,直接使用鍵盤上的return鍵或者Done鍵綁定關閉鍵盤方法,輸入完成后直接return即可關閉鍵盤。
直接綁定“Did End On Exit”事件,即結束編輯的時候激發(fā)這個方法即可實現(xiàn)在textField控件中使用點擊return鍵即可關閉鍵盤.
操作二、 直接觸摸屏幕其他區(qū)域即可關閉鍵盤。(在下面的方法中可以調用自帶方法:[self.view endEditing:YES]及在屏幕中結束編輯,結束各個編輯框的響應)
-1.在storyBoard中更改UIView最大的那個視圖為UIControl,為其綁定“Touch Down”事件,在調用輸入框對象,放棄第一響應者
- (IBAction)backTap:(id)sender{
[self.passTextField resignFirstResponder];//調用passTextField控件對象,放棄第一響應者
[self.nameTextField resignFirstResponder];調用passTextField控件對象,放棄第一響應者
//[self.view endEditing:YES];調用視圖方法結束響應
}
-2.使用自帶的方法監(jiān)聽手指觸摸事件。當在編輯時手指觸摸到其他地方則可以進行一些操作,如放棄鍵盤及輸入框的第一響應者
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
[self.passTextField resignFirstResponder];//調用passTextField控件對象,放棄第一響應者
[self.nameTextField resignFirstResponder];調用passTextField控件對象,放棄第一響應者
//[self.view endEditing:YES]; 調用視圖方法結束響應
}
操作三、 當整個父視圖都在UIScrollView滑動控件上時,可以使用滑動控件的代理方法自動調用來關閉鍵盤,而原本使用觸摸其它區(qū)域關閉鍵盤已經(jīng)不能夠使用了。
- (void) scrollViewWillBeginDragging:(UIScrollView *)scrollView ;
//滑動控件開始拖拽時執(zhí)行這個方法。
操作四、 創(chuàng)建手勢關閉鍵盤
-(void)viewDidLoad
{
/*創(chuàng)建手勢關閉鍵盤*/
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(keyboardHide:)];
//設置成NO表示當前控件響應后會傳播到其他控件上,默認為YES。
tapGestureRecognizer.cancelsTouchesInView = NO;
//將觸摸事件添加到當前view
[self.view addGestureRecognizer:tapGestureRecognizer];
}
- (void)keyboardHide:(UITapGestureRecognizer*)tap
{
[self.describeTextView resignFirstResponder];
}
我是只授之以漁的罌粟花,如果您有更好的使用方法歡迎留言交流!