Как сделать окно активным окном в многооконном приложении Какао? - PullRequest
2 голосов
/ 12 октября 2011

У меня есть многоокольное приложение Какао, реализованное с использованием методов, описанных в ответе на предыдущий вопрос .

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

Мои проверки на данный момент:

  • Я пробовал makeKeyAndOrderFront:, но это не имеет никакого значения.
  • Для владельца файла в NIB задан соответствующий класс контроллера окна.
  • В отладчике я вижу, что экземпляр каждого контроллера фактически является владельцем соответствующего окна..
  • Решение, предложенное NSThread, не создает окно ключа окна.
  • Метод canBecomeKeyWindow возвращает NO, хотя окно является экземпляром NSWindow.
  • Окно имеет строку заголовка и имеет изменяемый размер.

Что мне нужно сделать, чтобы показать последующие окна в активном состоянии?

РЕДАКТИРОВАТЬ:

Iподкласс NSWindow с SecondaryWindow и переопределение canBecomeKeyWindow для возврата YES.Я изменил на XIB, чтобы использовать только что созданный подкласс NSWindow.Проходил через код с помощью отладчика, но все равно окно не становится ключевым окном.

1 Ответ

0 голосов
/ 12 октября 2011

Попробуйте это

[previousWindow orderBack];
[previousWindow resignKeyWindow];
[newWindow orderFront];
[newWindow makeKeyWindow];
  • Окно может стать ключевым, если оно имеет строку заголовка или строку изменения размера.

Если в окне вашего приложения нет строки заголовка или окна изменения размера, оно не может стать ключевым окном.

...