在手势解除键盘后,TableView轻触失败

时间:2016-03-02 18:23:14

标签: ios swift uitableview

苹果公司允许用户解雇键盘的失败正在造成损失......

我已经设法在几个视图上添加代码来执行此操作,但现在我有一个带有TextView和几个TableView的ViewController。

使用Tap Gesture Recognizer关闭键盘后,表格单元格上的水龙头不会触发。代码如下。

func tap(gesture: UITapGestureRecognizer) {
    if gesture.view!.tag != 33 {
        self.view.endEditing(true)
        titleView.resignFirstResponder()
    }
}

这可能是腰带&但是我试图看看是否/可能有效。 (标签33是实际的TextView)

表格单元格以通常的方式触发,没有点击手势代码,它可以正常工作。

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    tableView.deselectRowAtIndexPath(indexPath, animated: false)....

按钮上的IBAction点击似乎有效但不是单元格触发器。

2 个答案:

答案 0 :(得分:0)

正如通常的情况一样,发布问题的过程会导致自我回答......

如果使用TableView单元格点击(我猜一般情况下),请将以下行添加到手势设置中。

gestureRecognizer.cancelsTouchesInView = false

可以在此处找到更详细的解决方案。 Dismiss keyboard by touching background of UITableView

答案 1 :(得分:0)

嘿@RobertyBob添加手势识别器不允许执行selectRowForIndex路径。
要关闭键盘,我建议您将代码添加到控制器文件中。

请注意:符合协议UITextFieldDelegate并设置所有textfields.delegate = self。

-(BOOL) textFieldShouldReturn:(UITextField *)textField{

[textField resignFirstResponder];
return YES;
}

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
[self.view endEditing:YES];

} 


另一种最佳方式
1。选择TextField
2。转到属性检查器并选择键盘类型为默认值并将键返回到完成