【问题标题】:Idiomatic way of modifying NSFont修改 NSFont 的惯用方式
【发布时间】:2016-10-06 14:43:48
【问题描述】:

我有一个NSFont,我想修改它的大小、家庭、特征。

我发现我可以使用NSFontManager 来做到这一点(使用例如convertFont:toFamilyconvertFont:toSize),但我怀疑有可能一次性更改所有内容(我想象过类似convertFont:toFamily:toSize:toHaveTrait 的东西) .但是,我还没有发现任何这样的东西,这就是为什么我目前正在逐步进行改造。

我考虑过的另一件事是使用NSFontDescriptor。但是,如果我已经从 NSFont 开始使用它似乎有点麻烦(NSFont -> NSFontDescriptor -> modified NSFontDescriptor -> modified NSFont 在我看来比 NSFont -> converted NSFont 更冗长)。

那么,有没有一种转换NSFonts 的理想方式?如果是这样,它是什么?

【问题讨论】:

    标签: objective-c cocoa appkit nsfont


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2021-01-30
      • 1970-01-01
      • 2016-10-12
      • 2017-03-17
      • 1970-01-01
      • 1970-01-01
      • 2016-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多