2015-01-10 4 views
7

Я хотел бы знать, как изменить цвет заголовка в NSButton в swift, я видел множество примеров в объективе-c, но я думаю, что в быстрой реализации разные, может кто-нибудь предоставить мне пример?Swift Mac OSX NSButton title color

ответ

19

попробуйте это в viewDidLoad или где-нибудь.

В Swift 3:

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

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

Спасибо, что вы сделали мой день !!! – PhiceDev

+3

В Swift 2 вам нужно изменить '' .CenterTextAlignment' к .Center' – Sebastian

+3

Swift 3 версия: 'пусть paragraphStyle = NSMutableParagraphStyle() paragraphStyle.alignment = .center button.attributedTitle = NSAttributedString (строка: "Заголовок", attributes: [NSForegroundColorAttributeName: NSColor.red, NSParagraphStyleAttributeName: paragraphStyle]) ' –

0

В Swift4

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

Xcode 9 с быстрым 4 еще не вышел и не является GM либо, хотя это может не измениться. Я думаю, что вы прыгаете с пистолета здесь – Chris

1

Swift 4

Я добавил это как дополнительный ответ, поскольку он изменяет только требуемый атрибут без перезаписи или добавления дополнительных.

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