伙计们!我在窗口的工具栏中有一个 NSSearchField 。我告诉窗口将其第一响应者设置为搜索字段:它有效。现在:如果我让窗口告诉我它的第一响应者是什么,即使搜索字段具有焦点,它也不是搜索字段......有没有办法将搜索字段设置为窗口的第一响应者而不会出现这种不匹配?
谢谢
伙计们!我在窗口的工具栏中有一个 NSSearchField 。我告诉窗口将其第一响应者设置为搜索字段:它有效。现在:如果我让窗口告诉我它的第一响应者是什么,即使搜索字段具有焦点,它也不是搜索字段......有没有办法将搜索字段设置为窗口的第一响应者而不会出现这种不匹配?
谢谢
不,或者至少不容易。当搜索字段或任何简单的文本字段具有键盘焦点时,它实际上并不是第一响应者。当NSTextField
(NSSearchField
的超类) 的实例被要求成为第一响应者时,它会向窗口请求“字段编辑器”,这是另一个专门用于编辑的文本字段。此编辑器放置在文本字段中并设置为实际的第一响应者。
要获取文本字段或搜索字段,您可以superview
在第一响应者上使用视图层次结构。(我认为这是字段编辑器的直接超级视图。)我很确定实际的文本字段也设置为字段编辑器的委托,所以你也可以这样,但我不记得我在哪里读到的。
有关字段编辑器的更多信息可通过NSWindow 类参考获得。