2
我在我的應用程序中使用了Label NSTextField
。是否有可能找到MAC OSX應用程序中使用的字體的文件路徑
我改變了字體說宋體 在我的應用程序,我想知道的字體
路徑,例如:
/Volumes/Library/Fonts/Arial.ttf
是否有可能找到字體的路徑我用了 ?
我在我的應用程序中使用了Label NSTextField
。是否有可能找到MAC OSX應用程序中使用的字體的文件路徑
我改變了字體說宋體 在我的應用程序,我想知道的字體
路徑,例如:
/Volumes/Library/Fonts/Arial.ttf
是否有可能找到字體的路徑我用了 ?
- (NSString *)getFontPathOfFont:(NSFont *)font
{
CTFontDescriptorRef fontRef = CTFontDescriptorCreateWithNameAndSize ((CFStringRef)[font fontName], [font pointSize]);
CFURLRef url = (CFURLRef)CTFontDescriptorCopyAttribute(fontRef, kCTFontURLAttribute);
NSString *fontPath = [NSString stringWithString:[(NSURL *)CFBridgingRelease(url) path]];
return fontPath;
}
上面的代碼解決了我的問題 - 我只是要送的字體
+(NSString *)getFontPath : (NSString *)fontName
{
@autoreleasepool {
NSArray *libraryPaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSAllDomainsMask, YES);
NSString *fontPath = nil;
for (NSString *path in libraryPaths) {
NSString *currentFontPath = [[path stringByAppendingPathComponent:@"Fonts"] stringByAppendingPathComponent:fontName];
if ([[NSFileManager defaultManager] fileExistsAtPath:currentFontPath]) {
fontPath = currentFontPath;
break;
}
}
return fontPath;
}
}
[AppDelegate getFontPath:@"Arial.ttf"];
output : /Library/Fonts/Arial.ttf
在這一解決方案,我必須重視的.ttf或雜項文件結尾。我只是想送字體系列的名稱,如 宋體或黑體或格魯吉亞 例如 NSFont * F = [myTF字體] [AppDelegate getFontPath:f.familyName]; – user226372