3

Label NSTextField在我的应用程序中使用 a。

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

例如 :

/Volumes/Library/Fonts/Arial.ttf

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

4

2 回答 2

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

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

于 2013-11-19T03:40:08.433 回答
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
于 2013-11-15T12:33:10.543 回答