在现有应用中统一字体的最佳方法是什么。我有足够的xib或带有生成控件的视图控制器。
想要定义几个尺寸和一个基本字体。
目前我将它们定义为常量:
#define FONT_NAME @"Helvetica Neue Light"
#define FONT_SIZE_NORMAL 13
....
但是常量不会在xib中使用,并且需要遍历所有xib并更改字体或从xib唤醒时有一些自定义代码。
正考虑将类别添加到NSFont
,甚至是调整systemFontOfSize
。
是否有一些设计模式可以在cocoa app中很好地完成?
答案 0 :(得分:0)
在代码中设置字体时,使用NSFont
类别是一个不错的选择。
对于xib和故事板,我更喜欢使用'用户定义的运行时属性'。以下示例适用于iOS,但对于MacOS,它将是相同的。
例如标签:
首先,在func fontWithStyle(style:NSNumber) -> (UIFont)
类别中创建方法UIFont
然后创建一个包含属性CustomLabel
currentStyle
class CustomLabel: UILabel {
var currentStyle:NSNumber = 0
override func awakeFromNib() {
...
self.font = UIFont.fontWithStyle(self.currentStyle)
}
}
最后,在界面构建器中添加运行时属性currentStyle
,如截屏