2012-04-13 3 views
1

Macのスクリーンセーバーにフォントを含める方法がわかりません。 私はチュートリアルEmbed font in a mac bundleの後にこれを行いましたが、私の[NSFont fontWithName:size:]はnullを返します。 どこから始めたらいいかわかりません。 どのような考え、解決策ですか? ありがとうございますスクリーンセーバーにカスタムフォントを埋め込む

+0

「機能しません」とはどういう意味ですか?どんな進歩?リンクした答えは正しいです。 – jtbandes

+0

その答えに正しく従ってもよろしいですか?私はそれに従って、それは動作します。ビルド中にあなたのフォントがResources/Fontsディレクトリにコピーされていることを確認しましたか? – trojanfoe

+0

フォントファイルは、nameofthescreensaver.saver/contents/resources/fonts/nameofthefont.otfにコピーされます。 私のワークスペースでは、nameoftheプロジェクト/ nameofthefont.otfにあります。 これまで行ったことは次のとおりです。 ターゲット>ビルドフェーズ>ビルドフェーズの追加>コピーファイルの追加に進みます。コピーファイル:Destination = Resources、Subpath = Fonts、フォントファイルを追加します。インストール時にのみコピーのチェックを外します。 私もinfo.plistにあります:キー=アプリケーションフォントのリソースパス(またはATSApplicationFontsPath)、値=フォント – user1331656

答えて

2

次の例は、アプリケーションで動作します。問題は、あなたがスクリーンセーバーバンドルを構築しているということです。それらはそれ自体ではなく、別々のアプリケーションによって読み込まれます。明らかに、ATSApplicationFontsPathのキーは、その名前が暗示するように、アプリケーションの読み込み時にのみ使用されます。

バンドルにフォントファイルのURLを列挙して登録するコードを記述する必要があります。これには-[NSBundle URLsForResourcesWithExtension:subdirectory:]CTFontManagerRegisterFontsForURLs()を使用できます。

関連する問題