NSSearchField作为第一响应者

时间:2012-04-02 19:07:43

标签: objective-c first-responder nssearchfield

家伙!我在窗口的工具栏中有一个NSSearchField。我告诉窗口将其第一个响应者设置为搜索字段:它有效。现在:如果我要求窗口告诉我它的第一响应者是什么,即使搜索字段具有焦点,它也不是搜索字段... 有没有办法将搜索字段设置为窗口的第一响应者,而不会出现这种不匹配的情况?

谢谢

1 个答案:

答案 0 :(得分:2)

没有。或者至少不容易。当搜索字段或任何简单文本字段具有键盘焦点时,它实际上不是第一个响应者。当要求NSTextFieldNSSearchField的超类)的实例成为第一响应者时,它会向窗口询问“字段编辑器”,这是另一个专门用于编辑的文本字段。此编辑器位于文本字段中,并设置为实际的第一响应者。

要获取文本字段或搜索字段,您可以使用第一个响应者上的superview向上查看视图层次结构。 (我认为这是现场编辑的直接超级视图。)我很确定实际的文本字段也被设置为字段编辑器的委托,所以你也可以这样做,但我不记得我在哪里阅读。

有关字段编辑器的更多信息,请访问NSWindow class reference