2017-04-21 139 views
0

我正在開發我的第一個Swift項目(hooray),這是一個適用於Mac OS的應用程序。我現在想要做的是創建一些按鈕,使用白色文本顏色和自定義字體。因爲我需要該按鈕上的一個新屬性來保存一些數據,所以我創建了一個子類NSButton。現在更改NSButton的字體大小不會改變任何東西

,我知道我可以設置一個按鈕的字體是這樣的:

super.font = NSFont(name: "NB-International-Pro", size: 40) 

這就像一個魅力的工作。之後,我試圖這樣做是爲了改變文本的顏色:

let pstyle = NSMutableParagraphStyle() 
pstyle.alignment = .center 
super.attributedTitle = NSAttributedString(string: (device?.name)!, attributes: [ NSForegroundColorAttributeName : NSColor.white, NSParagraphStyleAttributeName : pstyle ]) 

哪家做的工作,它確實改變了文本的顏色,但是,現在的字體和字號都恢復爲默認。有兩種選擇嗎?

謝謝。

+0

你並不需要NSButton的子類來實現這一點。它可以很容易地在你的XIB文件中完成。在界面生成器屬性檢查器中,選擇您的按鈕並將類型設置爲瞬時更改,然後在圖像下輸入按鈕圖標,在替代項下按鈕圖標2。 – KKRocks

回答

0

而是先設定的字體,包括在你的屬性的字體名稱和大小使用NSFontAttributeNameNSFontSizeAttribute鍵創建NSAttributedString時:

attributedTitle = NSAttributedString(string: (device?.name)!, attributes: [ NSForegroundColorAttributeName : NSColor.white, NSParagraphStyleAttributeName : pstyle, NSFontAttributeName: "NB-International-Pro", NSFontSizeAttribute: 40]) 

除此之外,有可能是一些改進,你可以對你的代碼體系結構。子類化NSButton並不是真的只需要改變文本樣式(可以在.xib或視圖控制器中完成)。