2012-04-13 6 views
1

Ich kann nicht herausfinden, wie eine Schriftart in meinem Mac-Bildschirmschoner enthalten. Ich tat dies folgende Tutorial, Embed font in a mac bundle, aber meine [NSFont fontWithName: size:] gibt immer noch Null zurück. Ich weiß nicht wirklich wo ich anfangen soll. Irgendwelche Gedanken, Lösungen? Vielen DankEine benutzerdefinierte Schriftart in einen Bildschirmschoner einbetten

+0

Was bedeutet "nicht funktioniert"? Irgendwelche Fortschritte überhaupt? Die Antwort, die Sie verknüpft haben, ist korrekt. – jtbandes

+0

Sind Sie sicher, dass Sie diese Antwort richtig befolgt haben? Ich habe es verfolgt und es funktioniert. Haben Sie überprüft, dass Ihre Schriftart während des Builds in das Verzeichnis Resources/Fonts kopiert wird? – trojanfoe

+0

Die Font-Datei wird kopiert in: nameofthescreensaver.saver/contents/resources/fonts/nameofthefont.otf. In meinem Arbeitsbereich befindet es sich in: nameofeproject/nameoffont.otf. Hier ist, was ich bis jetzt getan habe: Gehen Sie zum Ziel> Build-Phasen> Build-Phase hinzufügen> Kopieren Sie die Datei. In Kopierdateien: Ziel = Ressourcen, Unterpfad = Schriftarten, und ich füge meine Schriftdatei hinzu. Entfernen Sie das Häkchen nur bei der Installation. Ich habe auch in meiner info.plist: Schlüssel = Application Fonts Ressourcenpfad (oder ATSApplicationFontsPath), Value = Fonts – user1331656

Antwort

2

Das Beispiel, das Sie verfolgen, funktioniert für eine Anwendung. Das Problem ist, dass Sie ein Bildschirmschonerpaket erstellen. Dies sind keine Anwendungen für sich selbst, sie werden durch separate Anwendung geladen. Offensichtlich wird der Schlüssel ATSApplicationFontsPath, wie der Name schon sagt, nur beim Laden einer Anwendung verwendet.

Sie müssen Code schreiben, um die Font-Datei-URLs in Ihrem Bundle aufzulisten und sie zu registrieren. Sie können -[NSBundle URLsForResourcesWithExtension:subdirectory:] und CTFontManagerRegisterFontsForURLs() dafür verwenden.