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 中没有打开链接的问题外,旧方法一切正常。
也许这对以后的人有帮助。
我有一个 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 中没有打开链接的问题外,旧方法一切正常。 也许这对以后的人有帮助。