39 votes

Incorporer la police dans un lot mac

J'ai un programme que j'écris. Je veux utiliser une police de fantaisie. Puis-je incorporer ma police dans mon lot et l'utiliser à partir de là?

Mon code ...

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

84voto

Rob Keniger Points 32985

Oui, vous le pouvez. Vous devez ajouter un Copy Files phase de construction de votre cible (clic droit de votre cible, puis choisissez Ajouter > Nouvelle Phase de construction > Nouvelle Copie de Fichiers de la Phase de construction).

Définir la destination de la Copie des Fichiers phase de construction de Ressources avec un chemin de Fonts. Ce sera assurez-vous que la police est copié dans un dossier nommé Fonts dans votre bundle d'application.

Ajouter votre fichier de police à la nouvelle phase de construction en faisant glisser le fichier de police sur la phase de construction.

Vous devez ensuite ajouter l' ATSApplicationFontsPath clé de votre Info.plist le fichier, avec le nom du dossier contenant votre police que sa valeur:

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

Vous pouvez ensuite utiliser la police dans votre application comme s'il s'agissait d'un système intégré de police en appelant [NSFont fontWithName:@"yourFontName"].

Bien sûr, vous devez vous assurer que vous avez la permission de distribuer la police avant de le faire.

2voto

zneak Points 45458

Certaines personnes ont réussi à utiliser la magie du carbone. Tu devrais l'essayer.

Cela étant dit à propos de l'exemple ci-dessus, ATSFontActivateFromFileSpecification était obsolète dans Leopard. Apparemment, le remplaçant utilise directement un FSRef, ce qui est encore mieux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X