NSSearchField в качестве первого респондента - PullRequest
0 голосов
/ 02 апреля 2012

ребята! У меня есть NSSearchField на панели инструментов окна. Я говорю окну, чтобы установить его первого респондента в поле поиска: это работает. Теперь: если я попрошу окно, чтобы сказать мне, каков его первый респондент, это НЕ поле поиска, даже если поле поиска имеет фокус ... Есть ли способ установить поле поиска в качестве первого респондента окна без этого несоответствия?

Спасибо

1 Ответ

2 голосов
/ 03 апреля 2012

Нет.Или, по крайней мере, не легко.Когда поле поиска или любое простое текстовое поле имеет фокус клавиатуры, оно фактически не является первым респондентом.Когда экземпляр NSTextField (суперкласс NSSearchField) запрашивается стать первым респондентом, он запрашивает у окна «редактор полей», который является другим текстовым полем, используемым исключительно для редактирования.Этот редактор помещается в текстовое поле и устанавливается как фактический первый респондент.

Чтобы получить текстовое поле или поле поиска, вы можете перейти вверх по иерархии представлений, используя superview в первом респонденте.(Я думаю, что это прямое супервизор редактора полей.) Я почти уверен, что фактическое текстовое поле также установлено как делегат редактора полей, так что вы также можете получить его таким образом, но я не помню, где я это читал.

Дополнительная информация о редакторе полей доступна в справочнике NSWindow .

...