在触摸UITextField外部时关闭键盘
我想知道如何在用户触摸到UITextField
之外时使键盘消失。
您需要添加一个UITapGestureRecogniser
并将其分配给该视图,然后在其选择器上调用UITextField
上的第一响应者。
代码:
在viewDidLoad中
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard)];
[self.view addGestureRecognizer:tap];
在关闭键盘:
-(void)dismissKeyboard
{
[aTextField resignFirstResponder];
}
(其中aTextField
是负责键盘的文本字段)
Swift 3版本看起来像这样
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.dismissKeyboard (_:)))
self.view.addGestureRecognizer(tapGesture)
对于dismissKeyboard
func dismissKeyboard (_ sender: UITapGestureRecognizer) {
aTextField.resignFirstResponder()
}
我找到了几个答案。
使用在viewDidLoad:
期间初始化的伊娃viewDidLoad:
UIGestureRecognizer *tapper;
- (void)viewDidLoad
{
[super viewDidLoad];
tapper = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(handleSingleTap:)];
tapper.cancelsTouchesInView = NO;
[self.view addGestureRecognizer:tapper];
}
关闭正在编辑的内容:
- (void)handleSingleTap:(UITapGestureRecognizer *) sender
{
[self.view endEditing:YES];
}
检查一下,这将是最简单的方法,
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
[self.view endEditing:YES];// this will do the trick
}
要么
该库将处理包括滚动条自动滚动,点击空间以隐藏键盘等。
https://github.com/michaeltyson/TPKeyboardAvoiding
链接地址: http://www.djcxy.com/p/44221.html上一篇: Dismiss keyboard when touching outside of UITextField
下一篇: Can I force a UITableView to hide the separator between empty cells?