Вставить шрифт в пакет Mac - PullRequest
38 голосов
/ 15 марта 2010

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

Мой код ...

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

Ответы [ 2 ]

82 голосов
/ 15 марта 2010

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

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

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

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

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

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

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

2 голосов
/ 15 марта 2010

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

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

...