如何获取包含在NSFontCollection中的字体数组



如何获得由NSFontCollection"包含"的字体或字体族的NSArray ?

所有NSFontNSFontManager方法似乎都需要一个NSFontDescriptor,而NSFontCollection返回NSFontDescriptor对象的NSArray。似乎应该有一个方法来返回匹配这些的字体。

是否需要对所有字体手动查询每个字体描述符?

NSArray *familyNames = [[NSFontManager sharedFontManager] availableFontFamilies];

您可以获取字体集合的matchingDescriptors (NSFontDescriptor的数组),并向每个描述符询问其-objectForKey:NSFontFamilyAttribute,并将它们(字符串)转储到一个集合中以惟一它们。

或者,您可以将每个字体描述符转换为字体(通过使用描述符创建字体)并请求其familyName(然后唯一那些)。

这两个方法在Swift的compactMap()中都是相当直接的(为了放弃nil)。

相关内容

  • 没有找到相关文章

最新更新