2016-03-25 4 views
2

Я хочу создать NSTextField с встроенной в него ссылкой. Поэтому я написал следующий код в viewDidLoad: (textField подключен через @IBOutlet):Почему NSTextField становится кликабельным только после того, как я нажимаю на строки?

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 

Однако, текстовое поле, кажется, не быть интерактивными, когда я запустить приложение:

enter image description here

И когда я попытался выбрать текстовое поле, он, наконец, становится кликабельным, а струна перемещается в нижний правый угол и становится толстым:

enter image description here

Это очень страшный интерфейс. Почему это происходит? И как я могу сделать его кликабельным при запуске?

+0

http://stackoverflow.com/questions/2131943/why-do-hyperlinks-sometimes-not-show-in-an-nstextfield-with-an-nsattributedstrin?rq=1 – sschale

ответ

0

У меня была такая же проблема. Найдено https://developer.apple.com/library/mac/qa/qa1487/_index.html и перевел его на стриж:

 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.

 Смежные вопросы

  • Нет связанных вопросов^_^