为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

iOS
紫衣仙女 2019-10-05 14:08:45
我有一个UITableView以UITextFields作为单元格。UITableView触摸背景时,我想关闭键盘。我正在尝试通过创建UIButton的大小UITableView并将其放在的后面来实现此目的UITableView。唯一的问题是,UIButton即使触摸在UITableView上,也要捕获所有触摸。我究竟做错了什么?
查看完整描述

4 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

可以通过创建UITapGestureRecognizer对象(默认情况下单击一次即可检测到“手势”,因此无需进一步自定义)轻松地完成此操作,并指定触发手势时的目标/动作,然后附加手势识别器对象到您的表格视图。


例如,也许在您的viewDidLoad方法中:


UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)];

[self.tableView addGestureRecognizer:gestureRecognizer];

该hideKeyboard方法可能如下所示:


- (void) hideKeyboard {

    [textField1 resignFirstResponder];

    [textField2 resignFirstResponder];

    ...

    ...

}

请注意,在UITextField对象内部触摸时不会触发手势。但是会在UITableView背景,页脚视图,页眉视图和UILabels内部单元格等上触发它。


查看完整回答
反对 回复 2019-10-05
?
交互式爱情

TA贡献1712条经验 获得超3个赞

如果您进行以下设置,则UITapGestureRecognizer解决方案可用于表格单元格选择:


gestureRecognizer.cancelsTouchesInView = NO;


查看完整回答
反对 回复 2019-10-05
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

这是执行此操作的最佳方法。做这个


[self.view endEditing:YES];

要么


[[self.tableView superView] endEditing:YES];


查看完整回答
反对 回复 2019-10-05
?
四季花海

TA贡献1811条经验 获得超5个赞

您也可以从情节提要中执行此操作: 

//img1.sycdn.imooc.com//5d98339b00012edb09400932.jpg

查看完整回答
反对 回复 2019-10-05
  • 4 回答
  • 0 关注
  • 412 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信