検証環境:
Xcode 12
Swift 5.3
UITextView のテキスト内のURLをリンク化するには、isSelectable
プロパティをtrue
、そしてdataDetectorTypes
プロパティに.link
を指定すればよい。
これでURL部分がリンク化され、リンクをタップすると Safari で開くようになる。
let textView = UITextView() textView.text = "..." textView.isEditable = false textView.isSelectable = true textView.dataDetectorTypes = [.link]
StoryBoard から設定する場合
表示例
http スキームがなくてもリンクとして検出された。
URL ではない任意の文字列をリンク化したい場合は以前書いたような UITextView のattributedText
やlinkTextAttributes
プロパティを設定してリンク化する方法がある。
ちなみに UILabel では UITextView と同じようなやり方はできず、自前で実装する必要がある。
同様の機能を実装した OSS が公開されているので、これらの使用を検討するとよいかも。