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

我有一个UITableViewUITextFields作为单元格。UITableView触摸背景时,我想关闭键盘。我正在尝试通过创建UIButton的大小UITableView并将其放在的后面来实现此目的UITableView。唯一的问题是,UIButton即使触摸在UITableView上,也要捕获所有触摸。我究竟做错了什么?



紫衣仙女
浏览 455回答 4
4回答

梵蒂冈之花

可以通过创建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内部单元格等上触发它。

交互式爱情

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

哈士奇WWW

这是执行此操作的最佳方法。做这个[self.view endEditing:YES];要么[[self.tableView superView] endEditing:YES];

四季花海

您也可以从情节提要中执行此操作: 
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

iOS