Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 关闭键盘的手势后TableView点击失败_Ios_Swift_Uitableview - Fatal编程技术网

Ios 关闭键盘的手势后TableView点击失败

Ios 关闭键盘的手势后TableView点击失败,ios,swift,uitableview,Ios,Swift,Uitableview,苹果公司不允许用户关闭键盘的做法正在付出代价 我已经设法在一些视图上添加了代码来实现这一点,但现在我有了一个带有TextView和几个TableView的ViewController 在我使用点击手势识别器关闭键盘后,对表格单元格的点击不会触发。代码如下 func tap(gesture: UITapGestureRecognizer) { if gesture.view!.tag != 33 { self.view.endEditing(true) ti

苹果公司不允许用户关闭键盘的做法正在付出代价

我已经设法在一些视图上添加了代码来实现这一点,但现在我有了一个带有TextView和几个TableView的ViewController

在我使用点击手势识别器关闭键盘后,对表格单元格的点击不会触发。代码如下

func tap(gesture: UITapGestureRecognizer) {
    if gesture.view!.tag != 33 {
        self.view.endEditing(true)
        titleView.resignFirstResponder()
    }
}
这可能是皮带和背带,但我想看看是否/什么可能有效。(标记33是实际的文本视图)

表格单元格按常规方式触发,无需点击手势代码即可正常工作

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

点击按钮的iAction似乎有效,但单元格触发器无效。

正如这里经常出现的情况一样,发布问题的过程会导致自我回答

如果使用TableView单元格点击(我猜通常是这样),请在手势设置中添加以下行

gestureRecognizer.cancelsTouchesInView = false
更详细的解决方案可以在这里找到。

Hey@RobertyBob添加手势识别器不允许执行did selectRowForIndex Path。
要关闭上的键盘,我建议您向控制器文件中添加代码。

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

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

[textField resignFirstResponder];
return YES;
}

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

} 
-(BOOL)textField应返回:(UITextField*)textField{
[textField resignFirstResponder];
返回YES;
}
-(无效)触摸开始:(NSSet*)触摸事件:(UIEvent*)事件{
[自视图编辑:是];
} 



另一个最好的方法
1。选择文本字段
2。转到属性检查器,将键盘类型选择为默认值,并将键返回为“完成”

是否应为tag==33?认为可以-不希望文本视图中的点击结束编辑。这是在以前的视图中添加的,用于处理键盘,但效果很好-辞职的FirstResponder可以完美地启动,只是在那之后,对表格单元格的点击被某种方式阻止了(可能是因为他们试图辞职一个已经辞职的textview?)