我想创建一个嵌入了可点击链接的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
但是,当我运行应用程序时,文本字段似乎不可单击:
当我尝试选择文本字段时,它最终变成了可点击的,字符串稍微向右下方移动并变厚:
这界面太糟糕了。为什么会这样?我怎样才能让它在启动时点击?
最佳答案
我也有同样的问题。找到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。