我学会了在单击return键时,或者当用户触摸文本字段之外时如何关闭键盘。
一种方法是委托一个类来管理文本字段并编写代码:
- (BOOL) textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return YES; //I'm not sure whether I choose YES or NO
}
另一种方式类似如下:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
if (touchToDismissKeyboard.phase == UITouchPhaseBegan) {
[self.firstTextField resignFirstResponder];
}
}
然而,使用上面的任何一种方法,我发现其他界面都是“启用”的,例如分段控件或开关,它们与文本字段位于同一视图中。此外,当单击这些已启用的接口时,键盘仍显示在屏幕上。
然后,我的问题是,当键盘出现时,我如何使其他接口不可用("enabled = NO"),以及如何在不更改其他接口的值的情况下,在键盘或文本字段之外的任何位置取消触摸键盘。
发布于 2014-07-02 13:54:15
使用点击手势识别器
UITapGestureRecognizer *tapRecognize = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dissmissKeyBoard)];
tapRecognize.delegate = self;
tapRecognize.numberOfTapsRequired = 1;
[self.viewB addGestureRecognizer:tapRecognize];
然后实现dissmissKeyBoard方法。
- (void)dissmissKeyBoard
{
[yourTextField resignFirstResponder];
}
希望这能对你有所帮助。
https://stackoverflow.com/questions/24532544
复制相似问题