Вставить шрифт в пакет mac

У меня есть программа, которую я пишу. Я хочу использовать причудливый шрифт. Могу ли я просто вставить свой шрифт в свой пакет и использовать его оттуда.

Мой код...

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

Ответ 1

Да, вы можете. Вы должны добавить фазу сборки Copy Files к своей цели (щелкните правой кнопкой мыши по вашей цели, затем выберите Добавить > этап новой сборки > Новая фаза сборки файлов копий).

Задайте место назначения фазы сборки файлов копий Ресурсы с помощью пути Fonts. Это позволит скопировать шрифт в папку с именем Fonts в вашем приложении.

Добавьте файл шрифта в новую фазу сборки, перетащив файл шрифта на фазу сборки.

Затем вам нужно добавить ATSApplicationFontsPath ключ в ваш файл Info.plist с именем папки, содержащей ваш шрифт, в качестве значения:

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

Затем вы можете использовать шрифт в своем приложении, как если бы это был встроенный системный шрифт, вызвав [NSFont fontWithName:@"yourFontName"].

Конечно, вы должны убедиться, что у вас есть разрешение на распространение шрифта, прежде чем делать это.

Ответ 2

У некоторых людей был успех, используя магию Carbon. Вы должны попробовать.

Что касается вышеприведенного примера, ATSFontActivateFromFileSpecification устарел в Leopard. По-видимому, замена напрямую использует FSRef, что еще лучше.