修改NSFont的惯用法

时间:2016-10-06 14:43:48

标签: objective-c cocoa appkit nsfont

我有NSFont其大小,家庭,我想要修改的特征。

我发现我可以使用NSFontManager这样做(使用例如convertFont:toFamilyconvertFont:toSize),但我怀疑有可能同时改变所有(我想象)像convertFont:toFamily:toSize:toHaveTrait)之类的东西。但是,我还没有发现任何这样的事情,这就是我目前正在进行逐步转换的原因。

我考虑的另一件事是使用NSFontDescriptor。但是,如果我已经开始使用NSFont,那么使用它似乎有点麻烦(NSFont -> NSFontDescriptor -> modified NSFontDescriptor -> modified NSFont看起来比NSFont -> converted NSFont更详细。

那么,有没有一种转换NSFont的意识形态方式?如果是这样,它是什么?

1 个答案:

答案 0 :(得分:1)

字体描述符是解决此问题的常用方法。从26:00开始,请参阅WWDC 2013的Using Fonts with Text Kit(本次演讲主要关注UIKit,但许多原则也适用于AppKit)。 NSFontManager旨在与交互式字体选择器UI(特别是字体面板)配合使用。如果您正在与用户选择的字体进行交互(以UI方式),您绝对应该使用NSFontManager,但在大多数情况下,您会在用户选择和取消选择各种选项时逐步修改内容。如果您独立于用户操作字体,则可能需要使用字体描述符,尤其是不要无意中修改字体面板。