2015-01-10 15 views
7

Mi piacerebbe sapere come cambiare il colore del titolo in un NSButton in modo rapido, ho visto molti esempi in ogg-c ma penso che in fretta l'implementazione sia diversa, qualcuno può fornirmi un esempio?Swift Mac OSX NSButton titolo colore

risposta

19

provare questo in viewDidLoad o da qualche parte.

In Swift 3:

let pstyle = NSMutableParagraphStyle() 
    pstyle.alignment = .center 

    button.attributedTitle = NSAttributedString(string: "Title", attributes: [ NSForegroundColorAttributeName : NSColor.red, NSParagraphStyleAttributeName : pstyle ]) 
+0

Grazie amico che hai fatto la mia giornata !!! – PhiceDev

+3

In Swift 2 è necessario modificare '.CenterTextAlignment' a' .Center' – Sebastian

+3

Swift 3 Versione: 'lasciare paragraphStyle = NSMutableParagraphStyle() paragraphStyle.alignment = .center button.attributedTitle = NSAttributedString (string: "Titolo", attributi: [NSForegroundColorAttributeName: NSColor.red, NSParagraphStyleAttributeName: paragraphStyle]) ' –

0

In Swift4

button.attributedTitle = NSMutableAttributedString(string: "Hello World", attributes: [NSAttributedStringKey.foregroundColor: NSColor.white, NSAttributedStringKey.paragraphStyle: style, NSAttributedStringKey.font: NSFont.systemFont(ofSize: 18)]) 
+0

Xcode 9 con swift 4 non è ancora uscito e non è neanche GM, anche se questo potrebbe non cambiare Credo che tu stia saltando la pistola qui – Chris

1

Swift 4

Ho aggiunto questa come una risposta ulteriore dato che cambia solo l'attributo richiesto senza sovrascrivere o aggiungendone altri.

if let mutableAttributedTitle = button.attributedTitle.mutableCopy() as? NSMutableAttributedString { 
    mutableAttributedTitle.addAttribute(.foregroundColor, value: NSColor.white, range: NSRange(location: 0, length: mutableAttributedTitle.length)) 
    button.attributedTitle = mutableAttributedTitle 
}