我想创建一个嵌入了可点击链接的NSTextField。所以我在viewDidLoad:中编写了以下代码(通过textField连接@IBOutlet):

    textField.allowsEditingTextAttributes = true
    textField.selectable = true

    let templateString = "Please check out "
    let linkString = "the following page"
    let string = NSMutableAttributedString(string: templateString + linkString)
    string.beginEditing()
    string.addAttributes([NSLinkAttributeName: appPageURLString, NSFontAttributeName: NSFont.systemFontOfSize(11.0) ], range: NSMakeRange(templateString.characters.count, linkString.characters.count))
    string.endEditing()

    textField.attributedStringValue = string

但是,当我运行应用程序时,文本字段似乎不可单击:
swift - 为什么只有在单击字符串后,NSTextField才可单击?-LMLPHP
当我尝试选择文本字段时,它最终变成了可点击的,字符串稍微向右下方移动并变厚:
swift - 为什么只有在单击字符串后,NSTextField才可单击?-LMLPHP
这界面太糟糕了。为什么会这样?我怎样才能让它在启动时点击?

最佳答案

我也有同样的问题。找到https://developer.apple.com/library/mac/qa/qa1487/_index.html并将其翻译为swift:

        attString.beginEditing()
        attString.addAttribute(NSLinkAttributeName, value: url.absoluteString, range: range)
        attString.addAttribute(NSForegroundColorAttributeName, value: NSColor.blueColor(), range: range)
        attString.addAttribute(NSUnderlineStyleAttributeName, value:NSNumber(integer: NSUnderlineStyle.StyleSingle.rawValue) , range: range)
        attString.endEditing()

显示文本字段时显示下划线(和蓝色字体)。
“url”变量是nsurl。

10-07 19:13
查看更多