2016-01-20 72 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