CTFontCopyName Returns null for the kCTFontSampleTextNameKey



我试图得到一个字体的样本文本。这是我的编码。

    NSString *fontFilePath=@"/Volumes/Work/Mac/Fonts/FONT FOLDER/Times New Roman Bold.ttf";
    CFStringRef aCFString = (CFStringRef)fontFilePath;
    CTFontRef fontRef = CTFontCreateWithName(aCFString, 0.0,NULL);           
    CFStringRef sampleText=CTFontCopyName(fontRef,kCTFontSampleTextNameKey);
    NSLog(@"%@",sampleText);

返回null作为结果。但是对于kCTFontCopyrightNameKey, kCTFontLicenseURLNameKey等....它返回正确的值。仅对于kCTFontSampleTextNameKey,它返回null。我可以知道我怎样才能得到给定字体的示例文本

这个字体没有要求的值。要么处理这种情况,要么编辑字体并添加自己的值。

如果您想要将缺失的值添加到字体中,您需要使用一些字体编辑器。对不起,我不知道(但我打赌谷歌搜索可能会找到一些)。

如果您想在自己的代码中处理,例如用于内置系统字体,这里有一些示例代码:

CFStringRef sampleText = CTFontCopyName(fontRef,kCTFontSampleTextNameKey);
NSLog(@"%@", [NSString stringWithFormat:@"%@", (NSString *)sampleText ? (NSString *)sampleText : @""],
if (sampleText) CFRelease(sampleText);

相关内容

  • 没有找到相关文章

最新更新