我想创建一个类似于Pages.app(或TextEdit.app)中的弹出按钮,其菜单是字体系列的过滤列表。
我可以从[NSFontManager availableFontFamilies]
获得一系列可用的字体系列名称,但这提供了比在Pages的弹出菜单中更多的字体系列。
另一方面,我可以从[NSFontCollection fontCollectionWithName:NSFontCollectionUser]
得到正确过滤的字体描述符集,但也包括该族的每个成员(斜体,粗体等)。我不希望在弹出窗口中包含每个成员,只包括姓氏。
我想要过滤一组系列名称。
我从NSFontManager
获取的名称似乎已经为UI清理了,而我从字体描述符的属性字典([myFontDescriptor fontAttributes][NSFontNameAttribute]
)中获取的名称值则没有。所以我不能只根据字符串值创建两个组的简单集合交集,相同的东西可能有不同的名称。
答案 0 :(得分:2)
您可以使用-[NSFontDescriptor objectForKey:]
来检索-fontAttributes
字典中不存在的属性。如果使用属性键NSFontFamilyAttribute
,则会为您提供字体系列名称。将其应用于[NSFontCollection fontCollectionWithName:NSFontCollectionUser]
中的每个字体描述符应该可以满足您的需求。
答案 1 :(得分:0)
{{1}}
这是我的代码,可以节省一些时间