2012-03-05 29 views
4

我想在我的應用程序中添加字體選擇器。 Xcode的界面生成器也有一個很好的實現,它也在Xcode自己的首選項窗口中使用。Xcode風格字體選擇器

這是在字體名稱文本字段本身內有一個「T」按鈕(看似)的人。

這是一個標準的可可實現嗎?

+0

我目前正在調查NSFontPanel ..我自己需要一個答案,但是哦.. – Mazyod 2012-04-30 16:57:43

+0

我也想使用這個控件。你有沒有想出一個類似的解決方案? – 2012-05-17 15:37:33

回答

0

你需要推出自己的。請參閱Subclassing NSControl。您將繼承NSTextField和NSTextFieldCell。實際上閱讀整個指南。一旦你有一個很好的理解,那麼你可以重寫繪圖/幾何例程來返回寬度稍小的矩形(小到足以留下字體「按鈕」的空間)。然後畫出你的字體按鈕。您將在字體按鈕上響應其鼠標事件,就像您對任何NSView所做的一樣。

0

對於帶按鈕的預覽文本框沒有標準控件,但有一個標準的NSFontPanel類,可以讓用戶在點擊「T」按鈕後選擇字體。

最好的想法可能是重寫NSTextFieldCell。我已經能夠通過覆蓋-drawInteriorWithFrame:inView:來獲得所需的外觀,並且在調用超級時傳遞稍寬的幀,然後自己繪製按鈕。您還必須自己實現鼠標追蹤按鈕​​,但您可能只需創建自己的NSButtonCell實例並使用該按鈕的子rect調用幾個方法即可。

爲方便起見,您可能還需要創建一個NSTextField子類,該子類使用此單元而不是直NSTextFieldCell,但如果要從XIB加載內容,則只需更改XIB中單元的類並將其保留在常規文本字段視圖中。