我有一个禁用的文本视图,其中附加了点击手势识别器。问题在于,此手势识别器会拦截所有点击,包括在自动检测到的URL上进行的点击(文本视图已打开数据检测器)。有什么方法可以防止它发生,因此,当用户点击一个URL时,它是由文本视图本身处理的(在Safari中打开),而当用户点击其他位置时,就会调用我的手势识别器?

最佳答案

最好的方法是访问数据检测器使用的手势识别器(然后通过使用代理的gestureRecognizer:shouldRequireFailureOfGestureRecognizer:等指定您的敲击识别器的优先级应低于该识别器的优先级),但是我认为这是不可能的(如果我错了,任何人都可以在这里纠正我)。

相反,您可以尝试将委托添加到文本视图,并检查在手势识别器的有效期内是否调用了textView:shouldInteractWithURL:inRange:(然后仅在未由UITextView处理时运行您的处理程序)。

10-08 16:06