objective-c - 在 mac 包中嵌入字体

标签 objective-c cocoa xcode fonts nsview

我正在编写一个程序。我想使用一种花哨的字体。我可以将我的字体嵌入到我的包中并从那里使用它。

我的代码...

NSMutableAttributedString *recOf;
recOf = [[NSMutableAttributedString alloc] initWithString:@"In Recognition of"];
length = [recOf length];
[recOf addAttribute:NSFontAttributeName value:[NSFont fontWithName:@"Edwardian Script ITC" size:50] range:NSMakeRange(0, length)];
[[NSColor blackColor] set];
p.x = (bounds.size.width/2)- (([recOf size].width)/2);
p.y = (bounds.size.height/1.7);
[recOf drawAtPoint:p];
[recOf  release];

最佳答案

是的,你可以。您应该将 Copy Files 构建阶段添加到您的目标(右键单击您的目标,然后选择 Add > New Build Phase > New Copy Files Build Phase)。

将 Copy Files 构建阶段的目标设置为 Resources,路径为 Fonts。这将确保将字体复制到应用程序包中名为 Fonts 的文件夹中。

通过将字体文件拖到构建阶段,将字体文件添加到新的构建阶段。

然后您需要添加 ATSApplicationFontsPath key到您的 Info.plist 文件,其中包含您的字体的文件夹的名称作为其值:

<key>ATSApplicationFontsPath</key>
<string>Fonts</string>

然后,您可以通过调用 [NSFont fontWithName:@"yourFontName"] 在您的应用中使用该字体,就像它是内置系统字体一样。

当然,在执行此操作之前,您应该确保您拥有分发字体的权限。

关于objective-c - 在 mac 包中嵌入字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2444717/

相关文章:

objective-c - 将 NSArray 转换为 NSSet,自定义类实例传输不一致

c# - 核心数据与 LINQ to SQL?

iphone - 如何重命名 NSMutableDictionary 中的键?

ios - 神奇的记录1到多关系 objective-c

iOS10 - userNotificationCenter didReceiveNotificationResponse 调用延迟 10 秒

ios - iOS-预期字符不合理

ios - 删除行后如何重置 Sqlite id 值?

ios - misaligned_stack_error_是什么意思?

iphone - 在 NSMutableArray Xcode 中存储经纬度

objective-c - 系统偏好设置面板(安装)