我有一个 UITableView
,单元格是 UITextField
。当触摸 UITableView
的背景时,我想关闭键盘。我试图通过创建一个大小与 UITableView
相同的 UIButton
并将其放在 UITableView
后面来实现这一点。唯一的问题是 UIButton
正在捕获所有触摸,即使触摸发生在 UITableView 上也是如此。我做错了什么?
谢谢!
最佳答案
这很容易通过创建一个 UITapGestureRecognizer 来完成。对象(默认情况下,这将在单击时检测到“手势”,因此不需要进一步的自定义),指定触发手势时的目标/ Action ,然后将手势识别器对象附加到您的 TableView 。
例如也许在您的 viewDidLoad
方法中:
UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)];
[self.tableView addGestureRecognizer:gestureRecognizer];
hideKeyboard
方法可能如下所示:
- (void) hideKeyboard {
[textField1 resignFirstResponder];
[textField2 resignFirstResponder];
...
...
}
请注意,在 UITextField
对象内部触摸时不会触发该手势。它在 UITableView
背景、页脚 View 、页眉 View 和单元格内的 UILabels
等上触发。
关于ios - 通过触摸 UITableView 的背景关闭键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2321038/