如何获取 NSFontCollection 中包含的字体数组?
Posted
技术标签:
【中文标题】如何获取 NSFontCollection 中包含的字体数组?【英文标题】:How to get array of fonts contained in an NSFontCollection? 【发布时间】:2013-05-29 03:10:17 【问题描述】:您如何获得 NSArray
的字体或字体系列,这些字体或字体系列被 NSFontCollection
“包含”?
所有NSFont
和NSFontManager
方法似乎都需要一个NSFontDescriptor
,而NSFontCollection
返回NSArray
的NSFontDescriptor
对象。似乎应该有一种方法可以返回与这些匹配的字体。
是否需要针对所有字体手动查询每个字体描述符?
【问题讨论】:
【参考方案1】:NSArray *familyNames = [[NSFontManager sharedFontManager] availableFontFamilies];
【讨论】:
对不起,我的要求没有做。【参考方案2】:您可以获取字体集合的matchingDescriptors
(NSFontDescriptor
的数组)并询问每个描述符的-objectForKey:NSFontFamilyAttribute
,并将它们(字符串)转储到一个集合中以使它们唯一。
或者,您可以将每个字体描述符转换为字体(通过使用描述符创建字体)并请求其familyName
(然后将其唯一)。
使用 Swift 的 compactMap()
(丢弃 nil
s),这两种方法都相当简单。
【讨论】:
有趣。我得看看这个。在valueForKeyPath:
上使用 NSArray KVC 运算符甚至可能值得尝试以上是关于如何获取 NSFontCollection 中包含的字体数组?的主要内容,如果未能解决你的问题,请参考以下文章
我正在对 api 提出请求,但即将授权失败。如何在获取链接中包含授权令牌
如果 Json 变量在 WCF 中包含空格或任何特殊字符,如何获取 Json 值
在 Keras 中,如何获取与模型中包含的“模型”对象关联的图层名称?
web开发问题HTTP请求POSTDATA中包含多层对象如何获取?