Как я могу сделать приложение OS X нецелесообразным, все еще получая события click?
Я разрабатываю приложение для экранной клавиатуры для OS X, аналогичное тому, которое встроено в операционную систему (просмотр клавиатуры). Я, кажется, ударился о стену, поскольку не уверен, как я могу принимать события щелчка от кнопок и не красть фокус из текущего активированного приложения. Я знаю, что это возможно, так как есть приложения, которые уже делают это, например, нажатия клавиш AssistiveWere.
Итак, мой вопрос заключается в следующем: как я могу сделать так, чтобы мое окно получало события мыши и обрабатывало их без активизируется?
P.S. Я не очень опытен в разработке OS X, и это мой первый проект Swift, поэтому извиняюсь, если это тривиальная проблема.1 ответ:
Вам нужно сделать ваше окно экземпляром
NSPanel
(или подклассом), включитьNSNonactivatingPanelMask
в егоstyleMask
и установитьbecomesKeyOnlyIfNeeded
в true. (Маской стиля можно управлять в IB.) Вы, вероятно,также хотите, чтобы он был плавающим, поэтому он всегда выше обычных окон, поэтому установитеfloatingPanel
в true.