2

我正在制作自己的字体对话,但它嵌入在 WebKit 中。它几乎按照我想要的方式工作,除了一部分。它显示了无法使用标准 ASCII 字符编写的字体。它们以标准拉丁字符出现,如下所示。(注意我正在使用 CSS 设置菜单字体)

Wingdings 未显示在 Wingdings 中

这发生在诸如 Wingdings 之类的字体和诸如中文之类的语言的字体中。根据我的阅读,这是因为 ASCII 字符与字体字符之间没有映射。

我本质上想过滤掉这些字体,以便只出现可以实际书写且不同的字体。这应该是可能的,Pages 设法做到了。

我尝试过这样的事情,但它有时会删除它不应该删除的字体并留下它应该删除的字体。

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);
4

0 回答 0