objective-c - 如何打印字体的字符集?

标签 objective-c macos nscharacterset

我从互联网上下载了字体。现在我想打印该字体的字符集。我得到了该字体的CFCharacterSetRef。但我不知道如何打印 CFCharacterSetRef。这是我的编码。

 NSString *fontFilePath=@"/Volumes/Work/Mac/Fonts/FONT FOLDER/AngelicWar";
 CFStringRef aCFString = (CFStringRef)fontFilePath;
 CTFontRef fontRef = CTFontCreateWithName(aCFString, 0.0,NULL);         
 CFCharacterSetRef charRef=CTFontCopyCharacterSet (fontRef);  

为了打印字母数字字符集,我将像这样使用。

NSCharacterSet *characterset = [NSCharacterSet alphanumericCharacterSet];
    unichar idx;
    for( idx = 0; idx < 256; idx++ )
    {
        if ([characterset characterIsMember: idx])
        {
            if ( isprint(idx) ) {
                NSLog(@"%c",idx);
            }
            else {
                printf( "%02x ", idx);
            }
        }
    }

但我不知道修改此代码以打印该字体的字符集。

最佳答案

CFCharacterSetRefNSCharacterSet * 是免费桥接的,所以您就快到了。将第二个代码段的第一行替换为:

NSCharacterSet *characterset = (NSCharacterSet *) CTFontCopyCharacterSet (fontRef);

...你就在那里。

请记住,NSCharacterSet 可以包含 Unicode 字符(即索引大于 256)。这可能重要也可能不重要,具体取决于您在这里尝试执行的操作。

关于objective-c - 如何打印字体的字符集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6991686/

相关文章:

objective-c - 无法确定设备的当前方向

iphone - Phonegap 构建时没有架构问题

string - 如何在 Swift 2.0 中为 URL 使用 stringByAddingPercentEncodingWithAllowedCharacters()

objective-c - 从 iPhone 中的 NSString 中删除字符问题

ios - UITextfield 内容验证(字母、数字和特殊标点符号)

ios - iOS-CGAffineTransformScale不会还原吗?

ios - 如何在 TableView 标题中更改 uiview 的高度

objective-c - 如何使 UIView 可点击

swift - 什么会导致 Xcode MacOs 应用程序将主包指向 "/Applications/Xcode.app"?

objective-c - OS X 中跨进程通信的首选方法是什么?