func textView(_ textView: UITextView, shouldInteractWith URL... 未在 iOS 14 中调用

func textView(_ textView: UITextView, shouldInteractWith URL... not called in iOS 14

我有一个 UITextView 与代表。

代表对 URL 上的点击作出反应: textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction)

这已经适用于 iOS 11,12 和 13 但它不适用于 iOS 14。有人知道可能发生了什么变化吗?

注意事项:

  • 文本视图需要可选择且不可编辑。

  • 文本视图的dataDetectorTypes需要包含.link

  • 视图控制器(或任何人)需要采用 UITextViewDelegate,委托方法需要该视图控制器的顶级方法(不在其他方法中)。

  • 交互永远不会.preview(是死信)

将这两行放在viewDidload函数中

textView.delegate = self
textView.isSelectable = true

刚刚找到这个问题的解决方案。但首先感谢您的所有回复。特别来自@matt 和@Larme。 我为这个问题创建了一个例子,但它奏效了。所以我和我的真实项目进行了比较,发现了不同之处。 textView 位于 table 视图单元格内。在我的真实项目中,它被直接添加到单元格而不是内容视图。

旧:cell.addSubview(textView)

新:cell.contentView.addSubview(textView)

除了我在 iOS14 中没有打开链接的问题外,旧方法一切正常。 也许这对以后的人有帮助。