是否可以找到MAC OSX App中使用的字体的文件路径

时间:2013-11-15 04:15:21

标签: macos cocoa fonts

我在我的应用中使用了Label NSTextField

我将字体改为Arial 在我的应用程序中,我想知道字体的路径

例如:

/Volumes/Library/Fonts/Arial.ttf

是否可以找到我使用的Font的路径?

2 个答案:

答案 0 :(得分:7)

- (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;
}

上面的代码解决了我的问题 - 我只需要发送字体

答案 1 :(得分:0)

+(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