Как я могу сделать приложение OS X нецелесообразным, все еще получая события click?


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

Итак, мой вопрос заключается в следующем: как я могу сделать так, чтобы мое окно получало события мыши и обрабатывало их без активизируется?

P.S. Я не очень опытен в разработке OS X, и это мой первый проект Swift, поэтому извиняюсь, если это тривиальная проблема.
1 3

1 ответ:

Вам нужно сделать ваше окно экземпляром NSPanel (или подклассом), включить NSNonactivatingPanelMask в его styleMask и установить becomesKeyOnlyIfNeeded в true. (Маской стиля можно управлять в IB.) Вы, вероятно,также хотите, чтобы он был плавающим, поэтому он всегда выше обычных окон, поэтому установите floatingPanel в true.