Как вы можете загрузить шрифт (TTF) из файла, используя Core Text? - PullRequest
13 голосов
/ 24 апреля 2010

До OSX 10.6 ATSFontActivateFromFileSpecification / ATSFontActivateFromFileReference были доступны и могли использоваться для загрузки шрифта из файла. Я не могу найти ничего похожего в Core Text.

Ответы [ 3 ]

18 голосов
/ 24 апреля 2010

Вы можете получить CTFontRef из файла шрифта, набрав CGFontRef:

CFURLRef url = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, CFSTR("/path/to/font"), kCFURLPOSIXPathStyle, false);
CGDataProviderRef dataProvider = CGDataProviderCreateWithURL(url);
CGFontRef theCGFont = CGFontCreateWithDataProvider(dataProvider);
CTFontRef theCTFont = CTFontCreateWithGraphicsFont(theCGFont);
CFRelease(theCGFont);
CFRelease(dataProvider);
CFRelease(url);

// do something with the CTFontRef here

CFRelease(theCTFont);   
10 голосов
/ 24 апреля 2010

Похоже, CTFontManagerCreateFontDescriptorsFromURL является заменой основного текста.

4 голосов
/ 10 июля 2013
NSURL *fontURL = [[NSBundle mainBundle] URLForResource:@"Crystal" withExtension:@"ttf"];
    assert(fontURL);
    CFErrorRef error = NULL;
    if (!CTFontManagerRegisterFontsForURL((__bridge CFURLRef)fontURL, kCTFontManagerScopeProcess, &error))
    {
        CFShow(error);
        abort();
    }
...