0

我有一个带有一些 UITableViewCells 的 UITableView,其中包含带有建议的标签,以便将文本插入到 UITextView 中。我希望当用户点击一些带有文本建议的 uitableviewcell 时,该文本将进入 uitextview,但我也希望用户能够自己编辑 uitextview。

一切正常,直到我想在开始编辑文本视图后添加点击背景的功能,这导致隐藏键盘(resignFirstResponder)。但是当我实现 backgroundTap 时,对 didSelectRowAtIndexPath 的调用不再发生。

我该如何解决这个问题,以便当用户点击某个 uitableviewcell 时,调用将是 didSelectRowAtIndexPath 而不是 backgroundTap?

我对 backgroundTap 的实现是:

   -(void)backgroundTap:(UITapGestureRecognizer *)tapGR{
       //...some code here...
   }

在 viewWillAppear 我添加了这一行:

[self.view addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(backgroundTap:)]];

谢谢。

4

1 回答 1

1

问题是点击手势识别器吃掉了用于表格视图的点击。请参阅didSelectRowAtIndexPath: not being called

手势识别器不仅适用于它所附加的视图(self.view在您的情况下),而且还适用于视图层次结构的所有视图的子视图。在这种情况下,这包括所有内容,包括您的表格视图单元格。

解决方案是使用手势识别器委托(iOS 5)或 UIView gestureRecognizerShouldBegin:(仅限 iOS 6)进行调解。

于 2013-04-08T16:19:25.190 回答