更改 NSButton 的字体大小不会改变任何内容
Changing the font size of an NSButton doesn't change anything
我正在开发我的第一个 Swift 项目 (万岁),它是 Mac OS 的应用程序。我现在想做的是创建一些按钮,文本颜色为白色,字体为自定义。因为我需要该按钮上的一个新属性来保存一些数据,所以我创建了 NSButton
的子 class。
现在,我知道我可以像这样设置按钮的字体:
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 ])
它确实有效,它确实改变了文本的颜色,但是,现在字体和字体大小恢复为默认值。是否可以选择两者兼顾?
谢谢。
不要先设置字体,而是在使用 NSFontAttributeName
和 NSFontSizeAttribute
键创建 NSAttributedString
时在属性中包含字体名称和大小:
attributedTitle = NSAttributedString(string: (device?.name)!, attributes: [ NSForegroundColorAttributeName : NSColor.white, NSParagraphStyleAttributeName : pstyle, NSFontAttributeName: "NB-International-Pro", NSFontSizeAttribute: 40])
除此之外,您可能还可以对代码的体系结构进行一些改进。子类化 NSButton
并不是真正需要改变文本样式(可以在 .xib 或您的视图控制器中完成)。
我正在开发我的第一个 Swift 项目 (万岁),它是 Mac OS 的应用程序。我现在想做的是创建一些按钮,文本颜色为白色,字体为自定义。因为我需要该按钮上的一个新属性来保存一些数据,所以我创建了 NSButton
的子 class。
现在,我知道我可以像这样设置按钮的字体:
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 ])
它确实有效,它确实改变了文本的颜色,但是,现在字体和字体大小恢复为默认值。是否可以选择两者兼顾?
谢谢。
不要先设置字体,而是在使用 NSFontAttributeName
和 NSFontSizeAttribute
键创建 NSAttributedString
时在属性中包含字体名称和大小:
attributedTitle = NSAttributedString(string: (device?.name)!, attributes: [ NSForegroundColorAttributeName : NSColor.white, NSParagraphStyleAttributeName : pstyle, NSFontAttributeName: "NB-International-Pro", NSFontSizeAttribute: 40])
除此之外,您可能还可以对代码的体系结构进行一些改进。子类化 NSButton
并不是真正需要改变文本样式(可以在 .xib 或您的视图控制器中完成)。