NSFonts, которые имеют символы ASCII
Я делаю свой собственный диалог шрифтов, но он встроен в WebKit. Это работает в значительной степени, как я хочу, за исключением одной части. Это показывает шрифты, которые не могут быть написаны с использованием стандартных символов ASCII. Они появляются в стандартных латинских символах, таких как ниже. (обратите внимание, я устанавливаю шрифт меню с помощью CSS)
Это происходит со шрифтами, такими как Wingdings, и шрифтами для языков, таких как китайский. Из того, что я прочитал, это потому, что нет никакого сопоставления между символами ASCII и символами шрифта.
По сути, мне бы хотелось отфильтровать эти шрифты, чтобы отображались только те шрифты, которые на самом деле могут быть написаны и различаются. Это должно быть возможно, Страницы удается сделать это.
Я пытался что-то вроде этого, но иногда он удаляет шрифты, которые не должны, и оставляет шрифты, которые он должен удалить.
NSArray *availableFontFamilies = [[NSFontManager sharedFontManager] availableFontFamilies];
NSMutableArray *fontFamilies = [NSMutableArray array];
for (NSString *family in availableFontFamilies) {
NSFontDescriptor *fontDescriptor = [NSFontDescriptor fontDescriptorWithName: family size:16];
if ([fontDescriptor symbolicTraits] != 0 && ([fontDescriptor symbolicTraits] & NSFontSymbolicClass) == 0) {
[fontFamilies addObject: family];
}
}
NSLog(@"Families: %@", fontFamilies);