Objective c CTFontCopyName为kCTFontSampleTextNameKey返回null
我正在尝试获取字体的示例文本。这是我的编码Objective c CTFontCopyName为kCTFontSampleTextNameKey返回null,objective-c,macos,ctfont,ctfontref,Objective C,Macos,Ctfont,Ctfontref,我正在尝试获取字体的示例文本。这是我的编码 NSString *fontFilePath=@"/Volumes/Work/Mac/Fonts/FONT FOLDER/Times New Roman Bold.ttf"; CFStringRef aCFString = (CFStringRef)fontFilePath; CTFontRef fontRef = CTFontCreateWithName(aCFString, 0.0,NULL);
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);
我可以知道怎样才能给字体添加值吗?