将字体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,这更好。