我的客戶給了我一個只有英文的自定義TTF字體。所以我的意圖是隻爲英文加載TTF,對於其他語言,它應該回退到可用的System字體。如何爲英文版本註冊字體?
我做以下步驟:
- 與我的應用程序註冊字體。 複製到資源文件夾並添加到我的項目。
加載名稱的字體。
NSMutableDictionary * aTitleAttributes = [[[NSMutableDictionary alloc] initWithObjectsAndKeys: [NSFont fontWithName:CP_FONT_NAME size:[NSFont systemFontSize]], NSFontAttributeName, aParagraphStyle, NSParagraphStyleAttributeName, nil] autorelease];
但這會導致到另一個問題,因爲我加載這樣的字體爲所有的語言,我的本地化文字看起來英語。因此,我想我應該有一個像
NSFont *font = nil;
If (currentLocaleIsEnglish()) {
/// font to load my custom TTF
}
Then use [NSFont fontwithName:font ...]
一些條件,使任何人可以幫助我實現什麼我做的是正確的註冊與使用App的字體。如果是這樣,我怎麼才能註冊我的字體只有英文版。因爲對於其他語言環境,此字體不可用,那麼NSFont::fontWithName
將返回nil並自動回退到SystemFont,因此我的語言環境應該正確顯示。
否則,我必須有一個像我上面提到的條件,這是一種粗糙的做法。如果是這樣,我怎麼能寫這樣一個API來查找currentLocale是否是英文的?
沒有'NSFont :: fontWithName'這樣的東西。正確的方法簽名是'+ [NSFont fontWithName:]'-note表示這是一個類方法,而::表示它需要一個參數。 – 2009-11-29 17:05:04