主要分爲兩步,第一步首先要對字體進行本地註冊,執行如下代碼
- (void)loadExternFonts:(NSString *)fontFilePath {
NSArray *availableFonts = [[NSFontManager sharedFontManager] availableFonts];
NSURL *fontURL = [NSURL fileURLWithPath:fontFilePath];
CFErrorRef error = NULL;
if (!CTFontManagerRegisterFontsForURL((__bridge CFURLRef)fontURL, kCTFontManagerScopeProcess, &error))
{
CFShow(error);
NSLog(@"register font failed %@",error);
}
else {
NSLog(@"register font success");
}
}
第二步,獲取字庫的名稱,並進行加載
-(NSFont *)customFontWithPath:(NSString*)path size:(CGFloat)size {
NSURL *fontUrl = [NSURL fileURLWithPath:path];
CGDataProviderRef fontDataProvider = CGDataProviderCreateWithURL((__bridge CFURLRef)fontUrl);
CGFontRef fontRef = CGFontCreateWithDataProvider(fontDataProvider);
CGDataProviderRelease(fontDataProvider);
CTFontManagerRegisterGraphicsFont(fontRef, NULL);
NSString *fontName = CFBridgingRelease(CGFontCopyPostScriptName(fontRef));
NSFont *font = [NSFont fontWithName:fontName size:size];
CGFontRelease(fontRef);
return font;
}