0

我正在尝试获取字体的示例文本。这是我的编码。

    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。我可以知道如何获取给定字体的示例文本。

4

1 回答 1

1

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

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

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

CFStringRef sampleText = CTFontCopyName(fontRef,kCTFontSampleTextNameKey);
NSLog(@"%@", [NSString stringWithFormat:@"%@", (NSString *)sampleText ? (NSString *)sampleText : @""],
if (sampleText) CFRelease(sampleText);
于 2012-02-09T12:54:43.783 回答