39

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

我的代码...

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];
4

2 回答 2

84

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

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

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

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

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

然后,您可以通过调用[NSFont fontWithName:@"yourFontName"].

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

于 2010-03-15T02:35:44.173 回答
2

有些人成功地使用了碳魔法。你应该试试看。

上面提到的例子ATSFontActivateFromFileSpecification在 Leopard 中已被弃用。显然替代品直接使用了 FSRef,效果更好。

于 2010-03-15T02:26:01.223 回答