关闭虚拟键盘一般使用在使用UITextField和UITextView这两种控件时,当编辑完成时或者需要关闭键盘时使用。
这里有两种关闭键盘方法:(*都可以使用此方法不论多少个编辑控件即可直接关闭:[self.view endEditing:YES];)
操作一、 编辑时打开键盘,直接使用键盘上的return键或者Done键绑定关闭键盘方法,输入完成后直接return即可关闭键盘。
直接绑定“Did End On Exit”事件,即结束编辑的时候激发这个方法即可实现在textField控件中使用点击return键即可关闭键盘.
操作二、 直接触摸屏幕其他区域即可关闭键盘。(在下面的方法中可以调用自带方法:[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.使用自带的方法监听手指触摸事件。当在编辑时手指触摸到其他地方则可以进行一些操作,如放弃键盘及输入框的第一响应者
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
[self.passTextField resignFirstResponder];//调用passTextField控件对象,放弃第一响应者
[self.nameTextField resignFirstResponder];调用passTextField控件对象,放弃第一响应者
//[self.view endEditing:YES]; 调用视图方法结束响应
}
操作三、 当整个父视图都在UIScrollView滑动控件上时,可以使用滑动控件的代理方法自动调用来关闭键盘,而原本使用触摸其它区域关闭键盘已经不能够使用了。
- (void) scrollViewWillBeginDragging:(UIScrollView *)scrollView ;
//滑动控件开始拖拽时执行这个方法。
操作四、 创建手势关闭键盘
-(void)viewDidLoad
{
/*创建手势关闭键盘*/
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];
}
我是只授之以渔的罂粟花,如果您有更好的使用方法欢迎留言交流!