更改NSButton的字体大小不会改变任何内容

时间:2017-04-21 08:40:49

标签: swift macos swift3 nsbutton

我正在开发我的第一个Swift项目(万岁),这是一个适用于Mac OS的应用程序。我现在要做的是创建一些按钮,白色文本颜色和自定义字体。因为我需要在该按钮上使用新属性来保存一些数据,所以我创建了一个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 ])

哪个确实有效,但确实改变了文本的颜色,但是现在字体和字体大小都恢复了默认值。有两种选择吗?

感谢。

1 个答案:

答案 0 :(得分:0)

不是先设置字体,而是在使用NSAttributedStringNSFontAttributeName键创建NSFontSizeAttribute时在属性中包含字体名称和大小:

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

除此之外,您可以对代码的体系结构进行一些改进。实际上并不需要对NSButton进行子类化以改变文本样式(可以在.xib或视图控制器中完成)。