2010-04-24 80 views

回答

10

它看起來像是CTFontManagerCreateFontDescriptorsFromURL是核心文本的替代品。

+2

而且它使[比核芯顯卡路線短碼(HTTPS://gist.github。 COM/1696100)。 – 2012-01-28 22:57:45

18

您可以通過CGFontRef會得到一個字體文件CTFontRef

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

這不適用於Snow Leopard(由蘋果公司確認),您只需要在該版本的OS X上使用'ATSFontActivateFromMemory()'。 – trojanfoe 2012-07-20 08:25:20

+0

無法證實此事。它在Snow Leopard上運行良好。 – Andreas 2016-08-30 14:21:17

4
NSURL *fontURL = [[NSBundle mainBundle] URLForResource:@"Crystal" withExtension:@"ttf"]; 
    assert(fontURL); 
    CFErrorRef error = NULL; 
    if (!CTFontManagerRegisterFontsForURL((__bridge CFURLRef)fontURL, kCTFontManagerScopeProcess, &error)) 
    { 
     CFShow(error); 
     abort(); 
    } 
+1

這對我有效,謝謝! – MiMo 2013-07-27 17:07:59