我们会和键盘打交道,有时候要求弹出来的键盘类型是数字键盘,有时候要求我们弹出来的是一般的键盘。当我们输入完成的时候,就涉及到在上什么时候收回键盘的事情了。收回键盘分下面的情况来讨论。
大体来说,收起键盘的方法有:
- 让TextFiled放弃成为第一响应者(resignFirstResponder)
- 让View或者子View强制结束编辑状态(endEditing)
方法一:输入完以后用户点击return后收起键盘
_taskIdTextField = [[UITextField alloc] initWithFrame:CGRectMake(50 + 70 + 5, self.nowHeight, width - 70 - 5, 25)];
_taskIdTextField.borderStyle = UITextBorderStyleRoundedRect;
_taskIdTextField.adjustsFontSizeToFitWidth = YES;
_taskIdTextField.delegate = self;//<UITextFieldDelegate>
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
return [textField resignFirstResponder];
}
方法二:点击背景后收起键盘
点击背景收起键盘可以实现view的- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent *)event方法,然后执行view的- (BOOL)endEditing:(BOOL)force;方法。
- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent *)event{
[self.view endEditing:YES]; //实现该方法是需要注意view需要是继承UIControl而来的
}
方法三:不用view实现endEditing的方法
如果说在比较难获取viewController的view时,可以使用下面的方法
[[[UIApplication sharedApplication] keyWindow] endEditing:YES];
[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];
网友评论