2016-04-16 77 views
2

首先,我瞭解Info.plist中的ATSApplicationFontsPath屬性。但它爲我的應用程序添加了自定義字體。我希望我的應用程序在第一次啓動時將一些字體安裝到OS X中。這是因爲我的應用導出了文本,並且我必須確保用戶不會在其他某個應用中丟失正確的文本格式。OS X dev:如何在系統中安裝新字體

我在Final Draft應用程序中看到了這種行爲。它在其資源文件夾中具有自定義字體。它的Info.plist沒有ATSApplicationFontsPath屬性。但是在第一次啓動Final Draft之後不知何故將這些字體安裝到系統中並使用它們。

這怎麼可能?沒有接近解決這個問題。

回答

1

您可以將字體文件複製到〜/ Library/Fonts或使用管理員身份驗證/ Library/Fonts。您可能還需要撥打CTFontManagerRegisterFontsForURLs()與​​,使其立即可用於已經運行的應用程序(包括安裝它們的應用程序)。

我建議您在應用程序之外安裝任何「永久」之前,請求用戶的許可。

+0

我已經能夠通過CTFontManagerRegisterFontsForURLs在整個系統中註冊我的字體。現在每個應用程序都可以使用我想要的字體。但我無法將字體複製到〜/ Library/Fonts。 NSFileManager告訴「無法複製,因爲您沒有權限訪問」字體「」。我想這是沙箱規則的限制。可憐。 –

+0

是的,你應該提到你的應用程序是否被沙盒化,因爲根據定義,它會限制它的功能。如果您的應用程序被刪除,關於從您的應用程序註冊字體的問題將會發生。 –

+0

我試圖刪除我的應用程序。我在應用程序中註冊的這些字體在其他應用程序中完全消失。 –