NSTextViewで文字列にリンクを設定する
任意の文字列にリンクを設定
NSTextStorageにキーがNSAttributedString.Key.link
で値がURL
の属性を設定すれば任意の文字列にリンクを設定できます。
textView.string = "Link to Blog" let url = URL(string: "https://tid-a24.hatenablog.com/")! textView.textStorage?.addAttributes([.link: url], range: NSRange(textView.string))
URL文字列に自動でリンクを設定
NSTextViewにURL文字列が含まれて、そのURL文字列をリンクとして扱いたいなら
isAutomaticLinkDetectionEnabled
プロパティをtrue
にすれば自動でリンクとして設定されます。
textView.isAutomaticLinkDetectionEnabled = true
リンク属性の設定
リンクテキストの文字色やマウスオーバー時のカーソル形状などを変更するにはlinkTextAttributes
プロパティに値を設定します。
デフォルトでは文字色はNSColor.linkColor
でアンダーラインが付いたものになり、マウスオーバー時のカーソル形状は指差しハンドです。
- マウスオーバー時のカーソル形状指定
textView.linkTextAttributes?[.cursor] = NSCursor.pointingHand
- アンダーラインを消す
linkTextAttributes?[NSAttributedString.Key.underlineStyle] = nil