如何获得由NSFontCollection“包含”的NSArray字体或字体系列?
所有NSFont和NSFontManager方法似乎都需要单个NSFontDescriptor,而NSFontCollection则返回NSFontDescriptor对象的NSArray。似乎应该有一个返回与这些匹配的字体的方法。
是否有必要手动查询所有字体的每个字体描述符?
答案 0 :(得分:0)
NSArray *familyNames = [[NSFontManager sharedFontManager] availableFontFamilies];
答案 1 :(得分:0)
您可以获取字体集合的matchingDescriptors
(NSFontDescriptor
的数组),并向每个描述符询问其-objectForKey:NSFontFamilyAttribute
,然后将它们(字符串)转储到一个唯一的集合中。
或者,您可以将每个字体描述符变成一种字体(通过使用描述符创建字体)并要求其familyName
(然后使它们唯一)。
使用Swift的compactMap()
(丢弃nil
),这两种方法都非常简单。