NSMenuItem的自定义视图中的可编辑NSTextField

时间:2011-03-01 02:54:05

标签: objective-c cocoa nstextfield nsmenuitem nsstatusitem

我有一个子类NSView,我希望包含一个可编辑的NSTextField,类似于Spotlight。

我很难让文本字段选择并突出显示。如果我快速快速地在文本字段的编辑区域上单击,我实际上可以输入文本,但它看起来是灰色的,就好像我正在将文本添加到不是最重要的应用程序的字段中。

我试图使用viewDidMoveToWindow获得View窗口的焦点,但显然NSMenuItem的窗口是碳窗口,不能很好地处理键。

长话短说,成功完成这项工作的好方法是什么?我知道Spotlight是一个无边框窗口,但这不适合我的目的。

任何和所有建议都会非常有用。

2 个答案:

答案 0 :(得分:1)

经过大量研究,有两件事是共识:

(1)如果您发现自己正在寻找将内置UI元素子类化为特殊元素的方法,那么您可能会做错事,或者至少有一种更好的方法可以做到这一点。试图做。

(2)遵循接口指南的原因是更具未来兼容性。无法保证子类UI元素与操作系统的未来版本兼容。

Brass Tacks - 通常不建议继承UI元素。

答案 1 :(得分:0)

你可能想看看Matt Gemmell的MAAttachedWindow。

http://mattgemmell.com/2007/10/03/maattachedwindow-nswindow-subclass