這是從another answer blatently撕掉它應該爲您提供您的捆綁字體的所有字體名稱。
NSDictionary* infoDict = [[NSBundle mainBundle] infoDictionary];
NSArray* fontFiles = [infoDict objectForKey:@"UIAppFonts"];
for (NSString *fontFile in fontFiles) {
NSLog(@"file name: %@", fontFile);
NSURL *url = [[NSBundle mainBundle] URLForResource:fontFile withExtension:NULL];
NSData *fontData = [NSData dataWithContentsOfURL:url];
CGDataProviderRef fontDataProvider = CGDataProviderCreateWithCFData((__bridge CFDataRef)fontData);
CGFontRef loadedFont = CGFontCreateWithDataProvider(fontDataProvider);
NSString *fullName = CFBridgingRelease(CGFontCopyFullName(loadedFont));
CGFontRelease(loadedFont);
CGDataProviderRelease(fontDataProvider);
NSLog(@"font name: %@", fullName);
}
這個答案會讓你正確的字體的名字,但如果你只是從信息的plist想要的字體名稱:
NSDictionary* infoDict = [[NSBundle mainBundle] infoDictionary];
NSArray *arrayOfFontStringNames = infoDict[@"UIAppFonts"];
謝謝,但我應該真正重新創建捆綁字體文件只是爲了獲得名稱?有沒有更有效的方法,以防我有很多這樣的情況? – atisman
簡化將只是獲取字體名稱的數組。 –
建議的簡化不會檢索字體名稱,而是字體文件名稱。但我會接受原來的答案,因爲目前看起來沒有別的辦法。 – atisman