链接到TextView并可以编辑TextView(Swift 4)

B2F*_*2Fq 5 xcode hyperlink uitextview swift

我有一个TextView。

我怎样才能使两个链接都可以工作并且您可以编辑TextView

我该如何做,以便当我发布到TextView的链接时,可以单击它并翻阅它(并用其他颜色突出显示它)。

我试图在设置中包括“链接”,但无法编辑TextView。

在此处输入图片说明

Ras*_*n L 4

为了能够检测来自您的链接,textView您需要设置editablefalse。您可以做的就是向 textView 添加手势识别器来检测点击,并且该手势识别器将忽略链接上的点击。下面的例子(阅读评论以获取解释):

\n\n
class ViewController: UIViewController, UITextViewDelegate {\n    // create an outlet for your textView\n    @IBOutlet weak var textView: UITextView!\n\n    override func viewDidLoad() {\n        super.viewDidLoad()\n        textView.delegate = self\n\n        // add a tap gesture to your textView\n        let tap = UITapGestureRecognizer(target: self, action: #selector(textViewTapped))\n        textView.addGestureRecognizer(tap)\n\n        //add a tap recognizer to stop editing when you tap outside your textView (if you want to)\n        let viewTap = UITapGestureRecognizer(target: self, action: #selector(viewTapped))\n        self.view.addGestureRecognizer(viewTap)\n    }\n\n    @objc func viewTapped(_ aRecognizer: UITapGestureRecognizer) {\n        self.view.endEditing(true)\n    }\n\n    // when you tap on your textView you set the property isEditable to true and you\xc2\xb4ll be able to edit the text. If you click on a link you\xc2\xb4ll browse to that link instead\n    @objc func textViewTapped(_ aRecognizer: UITapGestureRecognizer) {\n        textView.dataDetectorTypes = []\n        textView.isEditable = true\n        textView.becomeFirstResponder()\n    }\n\n    // this delegate method restes the isEditable property when your done editing\n    func textViewDidEndEditing(_ textView: UITextView) {\n        textView.isEditable = false\n        textView.dataDetectorTypes = .all\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

textView 具有以下属性:\n在此输入图像描述

\n\n

我创建的示例项目的链接。

\n