CTFontCopyName Возвращает значение NULL для kCTFontSampleTextNameKey - PullRequest
0 голосов
/ 09 августа 2011

Я пытаюсь получить образец текста шрифта. Это моя кодировка.

    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);

Возвращает ноль в качестве результата. Но для kCTFontCopyrightNameKey, kCTFontLicenseURLNameKey и т.д .... Возвращает правильное значение. Только для kCTFontSampleTextNameKey возвращается null. Могу ли я узнать, как я могу получить образец текста данного шрифта.

1 Ответ

1 голос
/ 09 февраля 2012

Этот шрифт просто не имеет запрошенного значения.Либо обработайте этот случай, либо отредактируйте шрифт и добавьте свое собственное значение.

Если вы хотите добавить отсутствующее значение в шрифт, вам нужно использовать какой-нибудь редактор шрифтов.Извините, не знаю ничего (но поспорим, что поиск в Google может найти несколько).

Если вы хотите обработать регистр в вашем собственном коде, например, для встроенных системных шрифтовВот пример кода:

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