Сбой при длительном нажатии ссылки внутри UITextView

Я сталкиваюсь со странным сбоем при длительном нажатии, а затем нажимаю ссылку внутри 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, но безуспешно. Я попробовал решение, предоставленное «Сухроб» и «райанфиллиптомас» по ссылке 1, и решение, данное «nate.m» и «chrismorris» по ссылке 2. Еще более странно то, что я получаю этот сбой на устройствах, поддерживающих 3D Touch, таких как iPhone 6S, iPhone 6S Plus (с iOS 9 или выше). Может ли кто-нибудь помочь мне в этом вопросе.


person Varun Mehta    schedule 20.01.2017    source источник
comment
Согласно предоставленной ссылке, это ошибка iOS9 (над 10?). Он также предоставляет обходной путь. Вы пробовали это, и это не работает для вас? В этом случае, возможно, отредактируйте вопрос, указав, что вы на самом деле пробовали, а что не работает.   -  person shallowThought    schedule 20.01.2017


Ответы (1)


Наконец я решил эту проблему, получив помощь по этой ссылке

Поэтому я удалил атрибут ссылки из NSAttributedString и использую только атрибут подчеркивания. Используя жест касания, я определяю индекс символа, на который нажимает пользователь, и если этот индекс находится в моем диапазоне гиперссылок, я открываю URL-адрес.

person Varun Mehta    schedule 03.02.2017