2016-01-20 78 views
2

當我的應用程序中的NSTextField被聚焦時,我收到一個來自NSFontPanel的任何消息的奇怪問題。NSTextField吃NSFontPanel ..?

即使是NSTextField的子類,也不會從字體面板收到任何東西。當更改字體,顏色等只是在AppKit的某處被吃掉。

當文本字段爲而不是時,所有工作都很好,即我收到了通常的changeFont:和相關消息。

而且,不像NSTextView似乎沒有被任何種類的財產,以開啓/關閉字體面板支持在NSTextField ..

任何提示非常感謝!

+1

當用戶輸入文本時,文本字段將獲得一個'NSTextView'(請參閱**文本字段,文本視圖和字段編輯器**,https://developer.apple.com/library/mac/documentation/ TextFonts /概念/ CocoaTextArchitecture/TextFieldsAndViews/TextFieldsAndViews.html)。您可能希望將其替換爲自定義類以獲取字體管理器發送給活動委託的消息。 – Jay

回答

2

該消息由NSTextFieldNSTextView單元吃掉。用於切換富文本的屬性是allowsEditingTextAttributes或xib中的「Rich Text」。

+0

謝謝 - 雖然切換'allowedEditingTextAttributes'只是導致文本字段響應字體面板,我仍然沒有進入字體面板。我需要將字體從字體面板應用到修改後的文本字段,因此不能直接與文本字段進行對話。 – ATV

+0

您可以使用NSTextView的子類。 [如何替換自定義字段編輯器](https://developer.apple.com/library/mac/documentation/TextFonts/Conceptual/CocoaTextArchitecture/TextEditing/TextEditing.html#//apple_ref/doc/uid/TP40009459-CH3- SW35)。 – Willeke

+0

準確地說:'NSTextView'是用戶在'NSTextField'中編輯文本時由窗口提供的(臨時)控件(請參閱https://developer.apple.com/library/mac/documentation/TextFonts/概念/ CocoaTextArchitecture/TextFieldsAndViews/TextFieldsAndViews.html) – Jay