首先,说一下第一响应者的概念:一般而言,原则是谁叫出键盘那么就由谁退出键盘。而叫出键盘的这个控件一般我们就称之为第一响应者。如果它突然不成为第一响应者了,那么键盘也会随之消失。
所以:
(1)第一种方法,取消这个控件的第一响应者身份。如下的num1和num2是UITextField对象,用来输入数字的,我们点击完成或者计算按钮,就需要分别让它们退出第一响应者身份,因为我们不知道用户最后一次的输入光标会是在num1上还是num2上。
[self.num1 resignFirstResponder];
[self.num2 resignFirstResponder];
上面方法弊端在于,如果这个视图中又很多输入控件,那么太烦。
(2)用UIView来管理,结束编辑就会收起键盘。这个只能管理由view子控件叫出的键盘。即它只能管理自己“儿子”的行为。
[self.view endEditing:YES];
当然,我们一般倾向于使用后者。