我试图得到一个字体的样本文本。这是我的编码。
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);