【问题标题】:Crash on long pressing link inside UITextViewUITextView 内长按链接崩溃
【发布时间】:2017-06-05 01:15:42
【问题描述】:

长按然后单击 UITextView 中的链接时,我遇到了奇怪的崩溃。下面是我在链接上处理触摸事件的代码。

    func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange) -> Bool {
    let termsAndConditions : TRTermsAndConditionsViewController = TRTermsAndConditionsViewController(nibName: "TRTermsAndConditionsViewController", bundle: nil)
    let navigationtermsAndConditions = TRBaseNavigationViewController(rootViewController: termsAndConditions)
    self.present(navigationtermsAndConditions, animated: true, completion: nil)
    return false
}

我遇到以下错误:

*** Assertion failure in -[TRADFRI.TRTextViewNonEditable startInteractionWithLinkAtPoint:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3512.29.5/UITextView_LinkInteraction.m:377

我用谷歌搜索了很多,也浏览了这些链接link1link2,但没有取得任何成功。我已经尝试过 link1 上的“Sukhrob”和“ryanphillipthomas”给出的解决方案,以及 link2 上的“nate.m”和“chrismorris”给出的解决方案。更奇怪的是,我在支持 iPhone 6S、iPhone 6S Plus(iOS 9 或更高版本)等支持 3D 触摸的设备上遇到了这种崩溃。谁能帮我解决这个问题。

【问题讨论】:

  • 根据提供的链接,这是一个 iOS9 (nad 10?) 错误。它还提供了一种解决方法。你试过这个,它不适合你吗?在这种情况下,也许可以用您实际尝试过的内容和无效的内容来编辑问题。

标签: swift3 ios9 xcode8 ios10


【解决方案1】:

最后我通过link 的帮助解决了这个问题

所以我从NSAttributedString 中删除了链接属性,只使用了下划线属性。通过使用点击手势,我正在检测用户点击的字符索引,如果该索引位于我的超链接范围内,我正在打开 URL。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-04
    • 2014-04-26
    • 1970-01-01
    • 2013-04-11
    相关资源
    最近更新 更多