1、点击键盘上的Done按钮来关闭键盘
当用户按下Done按钮时,将生成一个Did End On Exit事件;
在项目导航中,建立一个ViewController,最好加上一个前缀,添加一行蓝色标注的代码,如下所示:
在YueViewController.m底部(@end之前)添加以下操作方法:
在导航项目中选择YueViewController.xib,点击Name文本字段,找到连接检查器(可通过快捷键打开)并打开,从Did End On Exit旁边的圆圈拖向File's Owner 图标,将其关联到textFieldDoneEditing:操作,然后运行,在模拟器上的textField文字框内输入内容,之后出现键盘,点击键盘上的Done按钮,即可关闭键盘。
与此类似,可以对键盘上的return等键进行方法关联,方法与上述方法基本相同。
2、通过触摸背景关闭键盘
通过触摸屏幕上的任何一点,即可关闭键盘。
使用Interface Builder,可以更改view所指向的对象类,将它的底层类由UIView更改为UIControl。
因为UIControl是UIView的子类,所以非常适合用于将view属性连接到UIControl实例。
在项目导航中创建一个YueViewController类,在YueViewController.h中添加一个方法,如下所示:
在YueViewController.m中添加方法的实现代码
该方法只是简单地告诉两个文本字段取消第一响应者状态。
打开YueViewController.xib,选中View,打开其对应的身份检查器,在标有Class的字段中,将UIView改为UIControl(UIControl为UIView的子类),按下return提交修改。打开连接检查器,从Touch Down事件拖到File' Owner图标,然后选择backgroundTap:操作。
运行程序,即可通过单击无活动控件的区域关闭键盘。
3、使用委托UITextFieldDelegate中的方法textFieldShouldReturn:来关闭屏幕键盘。
在YueViewController.h中,增加一个UITextFieldDelegate协议,然后在YueViewController.m中设置委托,如下所示:
实现的协议方法代码如下:
- (BOOL)textFieldShouldReturn:(UITextField
{
[textField resignFirstResponder];
return YES;
}
运行程序,在TextField文框内输入内容,点击屏幕键盘上的return键,即可关闭屏幕键盘。
4.通过手势识别器UIGestureRecognizer来实现键盘的隐藏
具体方法如下,在HHLViewController.m中的viewDidLoad函数中添加如下代码
- (void)viewDidLoad
{
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(tapHiddenkeyboard:)];
addGestureRecognizer:tapGestureRecognizer];
}
然后在HHLViewController.m中添加
- (void)tapHiddenkeyboard:(UITapGestureRecognizer
{
[self.mField1resignFirstResponder];
[self.mField2resignFirstResponder];
}
这种方法实现的是单击背景隐藏键盘。
还有另一种单击背景隐藏键盘的方法如下:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent
{
self.view endEditing:YES];
}