Сохранять ли окно другого приложения активным, в то же время получая события мыши из окна другого приложения? - PullRequest
1 голос
/ 20 марта 2010

Есть ли способ, чтобы окно моего приложения получало события клавиатуры и / или мыши (т. Е. Пользователь нажимал на кнопки окна), при этом сохраняя фокус на другом, не связанном приложении?

Я пытался настроить мое окно на разных уровнях, включая [myWindow setLevel: NSPopUpMenuWindowLevel], но безрезультатно.

Ответы [ 2 ]

0 голосов
/ 21 марта 2010

Нашел это. Простой, но неуловимый.

Используйте NSPanel и убедитесь, что стиль панели не активирующий (NSNonactivatingPanelMask), или отметьте ту же опцию в инспекторе IB.

0 голосов
/ 20 марта 2010

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

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

...