NSWindow регистрирует события мыши (используя NSTrackingArea), даже если приложение не сфокусировано?

Итак, я работаю над приложением наложения рабочего стола, которое использует область отслеживания, чтобы определить, входит ли мышь в эту область и выходит из нее, а затем что-то делает. По сути, я строю прямоугольник, который будет знать, если наведен курсор мыши на него, и изменится (чрезвычайно простой переворачивание).

Единственная сложность в том, что я хочу, чтобы он мог регистрировать эти события всякий раз, когда он виден, даже если это не первый ответчик или не ключ. Проблема в том, что для регистрации событий mouseEntered и mouseExited я должен сначала щелкнуть по окну, чтобы оно стало ключевым, а затем оно нормально их зарегистрировало.

Мой вопрос: как лучше всего это реализовать? Я пока не смог найти идеального решения, хотя близок.

Следующая ссылка позволяет ему регистрировать события CLICK, даже если он не сфокусирован, но мне не удалось найти что-то, что позволило бы ему фактически зарегистрировать mouseEntered и mouseExited.

Заставить приложение OSX реагировать на первый щелчок мыши, когда это не так. focus

5
задан Community 23 May 2017 в 12:17
поделиться