NSFonts, которые имеют символы ASCII

Я делаю свой собственный диалог шрифтов, но он встроен в WebKit. Это работает в значительной степени, как я хочу, за исключением одной части. Это показывает шрифты, которые не могут быть написаны с использованием стандартных символов ASCII. Они появляются в стандартных латинских символах, таких как ниже. (обратите внимание, я устанавливаю шрифт меню с помощью CSS)

Wingdings не отображается в Wingdings

Это происходит со шрифтами, такими как 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);

0 ответов

Другие вопросы по тегам