我正在开发我的第一个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 ])
哪个确实有效,但确实改变了文本的颜色,但是现在字体和字体大小都恢复了默认值。有两种选择吗?
感谢。
答案 0 :(得分:0)
不是先设置字体,而是在使用NSAttributedString
和NSFontAttributeName
键创建NSFontSizeAttribute
时在属性中包含字体名称和大小:
attributedTitle = NSAttributedString(string: (device?.name)!, attributes: [ NSForegroundColorAttributeName : NSColor.white, NSParagraphStyleAttributeName : pstyle, NSFontAttributeName: "NB-International-Pro", NSFontSizeAttribute: 40])
除此之外,您可以对代码的体系结构进行一些改进。实际上并不需要对NSButton
进行子类化以改变文本样式(可以在.xib或视图控制器中完成)。