From dc654812b1ee27c1bca8e8d20b37e37a6725f3b9 Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Sat, 3 Feb 2024 12:24:05 -0500 Subject: [PATCH] visionOS: Don't use deprecated UITextViewDelegate method --- Tusker/Views/ContentTextView.swift | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Tusker/Views/ContentTextView.swift b/Tusker/Views/ContentTextView.swift index e622b60d..6b59857e 100644 --- a/Tusker/Views/ContentTextView.swift +++ b/Tusker/Views/ContentTextView.swift @@ -236,6 +236,20 @@ class ContentTextView: LinkTextView, BaseEmojiLabel { } extension ContentTextView: UITextViewDelegate { + #if os(visionOS) + func textView(_ textView: UITextView, primaryActionFor textItem: UITextItem, defaultAction: UIAction) -> UIAction? { + guard case .link(let url) = textItem.content else { + return defaultAction + } + if url.scheme == dataDetectorsScheme { + return defaultAction + } else { + return UIAction { _ in + self.handleLinkTapped(url: url, text: (self.text as NSString).substring(with: textItem.range)) + } + } + } + #else func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool { // the builtin data detectors use the x-apple-data-detectors scheme, and we allow the text view to handle those itself if URL.scheme == dataDetectorsScheme { @@ -249,6 +263,7 @@ extension ContentTextView: UITextViewDelegate { return false } } + #endif } extension ContentTextView: MenuActionProvider {