UITextView

时间:2017-01-20 05:59:17

标签: swift3 ios9 xcode8 ios10

我在长按,然后点击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

我搜索了很多内容,同时也浏览了这些链接link1 link2,但没有取得任何成功。我尝试过" Sukhrob"和" ryanphillipthomas"在link1和解决方案中由" nate.m"和" chrismorris"在link2上。更奇怪的是,我在支持3D触控的设备上遇到了这样的崩溃,如iPhone 6S,iPhone 6S Plus(iOS 9或更高版本)。任何人都可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

最后,我通过从link

获得一些帮助解决了这个问题

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