OSX Cocoa: Как проверить, какое окно находится в фокусе? - PullRequest
12 голосов
/ 05 января 2010

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

Как мне проверить, какое окно находится в фокусе?

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

Спасибо за помощь.

Ответы [ 2 ]

20 голосов
/ 05 января 2010

На самом деле есть две формы «фокуса»:

  • Основным окном является окно, которое имеет активный вид (цветной / темно-серый светофор, черный текст в строке заголовка, не прокрашенный значок прокси и т. Д.).
  • Окно, которое получает ключевые события, является ключевым окном.

Рассмотрим окно документа с панелью инспектора. Если пользователь редактирует некоторый текст в поле в Инспекторе, то окно документа может быть основным, но панель «Инспектор» является ключевой.

Чтобы получить ключевое окно или главное окно , запросите общий экземпляр NSApplication . И, как отметил TechZen, вы можете спросить окно как , является ли оно ключом , так и , является ли оно основным .

4 голосов
/ 05 января 2010

Вы ищете 'keyWindow'. Это свойство как NSWindow, так и NSApplication. В первом случае это bool, а во втором - NSWindow.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...