2017-04-21 142 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或视图控制器中完成)。