Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 在NSTextView clicked()事件上以字符串形式获取链接_Swift_Nstextview - Fatal编程技术网

Swift 在NSTextView clicked()事件上以字符串形式获取链接

Swift 在NSTextView clicked()事件上以字符串形式获取链接,swift,nstextview,Swift,Nstextview,我编写了一个从NSTextview继承的MyTextView类。 我重写clicked()函数,并希望获得作为字符串单击的链接。我的代码如下所示: import Cocoa class MyTextView: NSTextView { override func clicked(onLink: Any, at charIndex: Int) { // Get onLink parameter as string } } 替代单击联机 第一个参数是链接,它的类型

我编写了一个从NSTextview继承的MyTextView类。 我重写clicked()函数,并希望获得作为字符串单击的链接。我的代码如下所示:

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

替代单击联机


第一个参数是链接,它的类型将为您提供所需的字符串。

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

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
}

不过,这段代码确实有点脆弱。

您在答案中发布的链接是我正在使用的Swift方法的Objective-C变体:谢谢您的尝试,但它不起作用,因为从未满足if条件。