1.使用Done键隐藏键盘
2.通过触摸背景隐藏键盘
输入文字的文本框打开的键盘没有Done键,并且文本视图不支持Did End on Exit事件,可以通过触摸背景的方式来隐藏键盘:
其实触摸背景只是操作方式,实现的形式还添加一个全屏的UIButton来改变第一响应者。
(1)添加UIButton
在Interface Builder视图中,选择View->Utilities->Object Library打开对象库,拖拽一个UIButton到视图中,并且选中,选择Type(类型)设置为Custom,使按钮变成透明;调整UIButton的大小使其填满整个视图,此时UIButton应该是位于视图的最高层,干扰了其他控件的选择;确保选定了UIButton,选择Editor->Arrange->Send to Back将按钮放置到所有控件的后面,不干扰选定其他控件;
(2)添加隐藏键盘的代码
要隐藏键盘,只需要让显示键盘的对象放弃第一响应者的状态.可用下列代码实现:
[self.thePlace resignFirstResponder];
用户可以修改thePlace,替换为需要修改的地方。
我们以类方法hideKeyboard为例,需要修改的地方为thePlace,theVerb,theNumber,theTemplate;
- (IBAction)hideKeyboard:(id)sender
{
[self thePlace resignFirstResponder];
[self thePlace resignFirstResponder
[self thePlace resignFirstResponder
[self thePlace resignFirstResponder
}
此方法的实现需要添加到ViewController.m的末尾,运行效果即为单机文本框和文本视图外面或按Done键,键盘都会消失。