ios - 通过触摸 UITableView 的背景关闭键盘

标签 ios uitableview uikeyboard

我有一个 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/

相关文章:

ios - Facebook iOS SDK - 在 Graph API v2.4 中获取好友列表

android - 在 iOS 项目中使用 Java 库

iphone - 点击 uipickerview 时键盘不退出

c# - 使用空 ActiveSource 在 C# 中模拟按 Backspace 按钮

ios - 播放通过 CloudKit 作为 CKAsset 下载的视频 - iOS

ios - iOS 中的假名(非汉字)手写识别

ios - UITableView 行分隔线在扩展单元格时行为不正确

iOS 显示表中数组的数据,最后一个索引除外

ios - TableView 从单独队列中的数据库填充

ios - iOS获取键盘语言