对于小设备及UITextField控件来说,有一个常见的问题就是“如何在用户输入完之后把键盘关掉”。iOS系统并没有内设这样一种方法来自动侦测用户是否已经输入完毕并作出响应,不过,当用户编辑完UITextField的内容之后,按理说的确应该把键盘关闭才对。iPad提供了关闭键盘的按钮,但iPhone和iPad touch没有。
幸好我们只需要稍微编写一些代码,即可在用户编辑完文本框之后做出响应了,这种解决方案不受平台限制。具体做法是提供Done按钮供用户点击,然后令文本框放弃第一响应者身份。只要放弃了第一响应者的身份,键盘就不会出现在屏幕里了,实现本方法时,有几个关键事项要注意:
1、把Return键的类型设为UIReturnKeyDone,以便将文本由Return改变为Done。也可以对文本框的returnKeyType属性赋值,把Return键的文本改为Done,可以使用户明白:在编辑完之后,只需按下这个键,就能结束编辑。如果不这样做,那么除非用户曾在非移动平台的操作系统里以类似方式操作过,否则很难知道如何结束编辑状态。
2、令驶入控制器成为文本框的delegate。可以用代码把文本框的delegate属性设为视图控制器,请确认视图控制器已经遵循并实现了UITextFieldDelegate协议。
3、实现textFieldShouldReturn:方法。无论Return键叫做什么名字,该方法都会把用户对这个按钮的触摸捕捉下来。我们在该方法里调用resignFirstResponder,以便把键盘隐藏起来,直到用户下次点击UITextField或UITextView的时候,键盘才会再度出现