Проблема с добавлением поля в поле при добавлении и удалении представления - PullRequest
3 голосов
/ 30 мая 2011

У меня есть область видимости, содержащая NSSearchField.Панель можно показать и скрыть с помощью пункта меню.Я генерирую эту панель, создав новый NSViewController (и загрузив новое представление из XIB).Когда отображается панель, я делаю addSubview: для окна contentView ;когда панель скрыта, я делаю removeFromSuperview для представления в контроллере представления.

Если при запуске приложения панель уже открыта, нажатие на вкладку переключает между основным представлением вокно (представление таблицы) и поле поиска на панели областей.Если я запускаю приложение, а панель еще не отображается, как только я показываю панель, я могу перейти от представления таблицы к полю поиска, но не другим способом.

После удаления панели областив первый раз, затем покажите это снова, я больше не могу переключаться между полем поиска и табличным представлением, независимо от того, какое представление выбрано в данный момент.

Есть ли что-то, что мне нужно сделать, кроме addSubview: и removeFromSuperview ?Я не могу обернуть голову, почему это не сработает, и особенно, почему я веду себя по-разному, отображается ли панель при запуске или нет.

Ответы [ 2 ]

3 голосов
/ 30 мая 2011

Вам нужно установить nextKeyView обоих представлений, если вы хотите контролировать то, что происходит, когда вы нажимаете клавишу табуляции.

[yourTableView setNextKeyView:yourSearchField];
[yourSearchField setNextKeyView:yourTableView];

Однако вам нужно быть осторожным, потому что вы можете нарушить автоматическипостроенный цикл просмотра ключей. Эта статья содержит более подробную информацию о том, как справиться с этой ситуацией.

1 голос
/ 31 мая 2011

Мне удалось получить желаемое поведение, установив setAutorecalculatesKeyViewLoop: в значение true в окне представлений.

...