2016-03-25 10 views
2

クリック可能なリンクが埋め込まれたNSTextFieldを作成します。なぜ文字列をクリックした後にNSTextFieldがクリック可能になるのですか?

enter image description here

:私はアプリを実行すると

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 

ただし、テキストフィールドがクリックできていないようです。だから私は(textField@IBOutletを介して接続されている)viewDidLoad:に次のコードを書きました

そして、テキストフィールドを選択しようとすると、最終的にクリック可能となり、文字列が右下に少し動いて太くなります。

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() 

とTextFieldを表示するときには、下線(と青のフォント)を示しています。

'url'変数はNSURLです。

関連する問題