将字体embedded到mac包中

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

我的代码…

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]; px = (bounds.size.width/2)- (([recOf size].width)/2); py = (bounds.size.height/1.7); [recOf drawAtPoint:p]; [recOf release]; 

是的你可以。 您应该将Copy Files构build阶段添加到目标(右键单击您的目标,然后select“ 添加”>“新build构build阶段”>“新build文件构build阶段” )。

将Copy Files构build阶段的目标设置为具有Fonts的path的Resources 。 这将确保字体被复制到应用程序包中名为Fonts的文件夹中。

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

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

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

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

当然,在做这件事之前,您应该确保您有权分发字体。

有些人用碳魔法成功了 。 你应该尝试一下。

对于上面的例子来说, ATSFontActivateFromFileSpecification在Leopard中ATSFontActivateFromFileSpecification被弃用了。 显然,替代品直接使用FSRef,这更好。