Можно ли отменить уведомление от addGlobalMonitorForEventsMatchingMask? - PullRequest
1 голос
/ 22 февраля 2011

У меня есть простой глобальный монитор для щелчков мыши:

[NSEvent addGlobalMonitorForEventsMatchingMask:NSLeftMouseDownMask handler:^(NSEvent *event){
    if ([event type] == NSLeftMouseDown) {
        [self mouseDown];
        if (self.lockMouse) {
            // Cancel event
        }
    }
}];

Можно ли отменить глобальные события мыши, поэтому щелчок уведомляет только мое приложение?То есть: после нажатия на любую кнопку на экране (которая не принадлежит моему приложению), когда она заблокирована, событие происходит здесь, но не для кнопки, которая была ниже курсора.Что-то вроде event.preventDefault () в JavaScript.

1 Ответ

3 голосов
/ 22 февраля 2011

Не с этим API, нет.Из документации сказано, что блок:

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

Если вы хотите перехватить событие и предотвратить его распространение, вам нужно вместо этого использовать CGEventTap.

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