在 NSTextView clicked() 事件上获取 link 作为字符串

Get link as string on NSTextView clicked() event

我写了一个继承自 NSTextview 的 MyTextView class。 我重写了 clicked() 函数,我想获取正在单击的 link 作为字符串。我的代码如下所示:

import Cocoa
class MyTextView: NSTextView
{
    override func clicked(onLink: Any, at charIndex: Int) {
        // Get onLink parameter as string
    }
}

替代点击link

https://developer.apple.com/reference/appkit/nstextview/1449497-clickedonlink?language=objc

第一个参数是 link,类型为 https://developer.apple.com/reference/uikit/nslinkattributename?language=objc,它将为您提供所需的字符串。

如果您只是想将其转换为字符串,请尝试:

if let onLinkString = onLink as? String {
   //onLinkString is a string
}

我花了一段时间,但最后我解决了它:

override func clicked(onLink: Any, at charIndex: Int) {
    let linkStr = (onLink as AnyObject).description as String
}

虽然这段代码感觉有点脆弱。