修改 NSFont 的惯用方式
Idiomatic way of modifying NSFont
我有一个 NSFont
我想修改其大小、家庭、特征。
我发现我可以使用 NSFontManager
来做到这一点(使用例如 convertFont:toFamily
或 convertFont:toSize
),但我怀疑有可能一次改变所有(我想象了类似 convertFont:toFamily:toSize:toHaveTrait
) 的东西。但是,我并没有发现这样的东西,这就是我目前正在逐步改造的原因。
我考虑过的另一件事是使用 NSFontDescriptor
。但是,如果我已经从 NSFont 开始使用它似乎有点麻烦(NSFont -> NSFontDescriptor -> modified NSFontDescriptor -> modified NSFont
对我来说比 NSFont -> converted NSFont
更冗长)。
那么,有没有一种转换 NSFont
s 的思想方法?如果是,那是什么?
字体描述符是解决此问题的常用方法。请参阅从 26:00 左右开始的 WWDC 2013 的 Using Fonts with Text Kit(本次演讲的重点是 UIKit,但许多原则也适用于 AppKit)。 NSFontManager
旨在与交互式字体选择器一起工作 UI(特别是字体面板)。如果您正在与用户选择的字体进行交互(以 UI 的方式),您绝对应该使用 NSFontManager
,但在大多数情况下,您将在用户选择时零碎地修改内容并取消选择各种选项。如果您独立于用户操作字体,您可能希望使用字体描述符,特别是这样您就不会无意中修改字体面板。
我有一个 NSFont
我想修改其大小、家庭、特征。
我发现我可以使用 NSFontManager
来做到这一点(使用例如 convertFont:toFamily
或 convertFont:toSize
),但我怀疑有可能一次改变所有(我想象了类似 convertFont:toFamily:toSize:toHaveTrait
) 的东西。但是,我并没有发现这样的东西,这就是我目前正在逐步改造的原因。
我考虑过的另一件事是使用 NSFontDescriptor
。但是,如果我已经从 NSFont 开始使用它似乎有点麻烦(NSFont -> NSFontDescriptor -> modified NSFontDescriptor -> modified NSFont
对我来说比 NSFont -> converted NSFont
更冗长)。
那么,有没有一种转换 NSFont
s 的思想方法?如果是,那是什么?
字体描述符是解决此问题的常用方法。请参阅从 26:00 左右开始的 WWDC 2013 的 Using Fonts with Text Kit(本次演讲的重点是 UIKit,但许多原则也适用于 AppKit)。 NSFontManager
旨在与交互式字体选择器一起工作 UI(特别是字体面板)。如果您正在与用户选择的字体进行交互(以 UI 的方式),您绝对应该使用 NSFontManager
,但在大多数情况下,您将在用户选择时零碎地修改内容并取消选择各种选项。如果您独立于用户操作字体,您可能希望使用字体描述符,特别是这样您就不会无意中修改字体面板。