我Label NSTextField
在我的应用程序中使用 a。
我将字体更改为 Arial 在我的应用程序中我想知道字体的路径
例如 :
/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