func textView(_textView:UITextView,shouldInteractWith URL..在



我有一个带有委托的UITextView

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

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

刚刚找到了这个问题的解决方案。但首先感谢您的回复。特别是来自@matt和@Larme。我为这个问题创建了一个例子,但它起了作用。因此,我与我的真实项目进行了比较,发现了差异。textView位于表格视图单元格内。在我的真实项目中,它被直接添加到单元格中,而不是内容视图中。

旧:cell.addSubview(textView)

新增:cell.contentView.addSubview(textView)

除了我在iOS14中没有打开链接的问题外,旧方法的一切都很好。也许这对将来的某个人有帮助。

需要记住的事项:

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

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

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

  • 交互永远不会是.preview(这是一纸空文(。

将这两行放在viewDidload函数中

textView.delegate = self
textView.isSelectable = true

相关内容

最新更新