Objective c NSF包含ASCII字符的字体

Objective c NSF包含ASCII字符的字体,objective-c,cocoa,fonts,nsfont,nsfontmanager,Objective C,Cocoa,Fonts,Nsfont,Nsfontmanager,我正在制作自己的字体对话,但它嵌入到WebKit中。除了一个部分外,它的工作原理和我想要的差不多。它显示的是无法使用标准ASCII字符书写的字体。它们以标准拉丁字符显示,如下所示。(注意,我正在使用CSS设置菜单字体) 这种情况发生在Wingdings等字体和中文等语言的字体上。据我所知,这是因为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);