2016-10-06 48 views
0

我有一個NSFont其大小,家庭,我想修改的特徵。修改NSFont的地道方式

我發現我可以用NSFontManager這樣做(例如使用convertFont:toFamilyconvertFont:toSize),但我懷疑會有一些可能改變一次全部(我想象像convertFont:toFamily:toSize:toHaveTrait)。不過,我還沒有發現任何這樣的事情,這就是爲什麼我目前正在逐步轉變。

我考慮的另一件事是使用NSFontDescriptor。但是,如果我已經開始使用NSFont(NSFont -> NSFontDescriptor -> modified NSFontDescriptor -> modified NSFont看起來比我更詳細,而不是NSFont -> converted NSFont),使用這個看起來有點麻煩。

那麼,有沒有一種轉換思想的方式NSFont?如果是這樣,那是什麼?

回答

1

字體描述符是解決這個問題的常用方法。請參閱從26:00開始的WWDC 2013中的Using Fonts with Text Kit(本講座主要關注UIKit,但許多原則也適用於AppKit)。 NSFontManager設計用於使用交互式字體選擇器UI(特別是字體面板)。如果你正在用用戶選擇的字體進行交互(用戶界面方式),那麼你一定要使用NSFontManager,但是在大多數情況下,當用戶選擇和取消選擇各種選項時,你會逐漸修改一些東西。如果您獨立於用戶操縱字體,則可能需要使用字體描述符,特別是您不會無意中修改字體面板。