У меня есть CGEventTap
, и я хотел бы наблюдать и обрабатывать все события щелчка мышью системы.Обнаружение события щелчка мышью легко, но я не хочу, чтобы некоторые щелчки обрабатывались остальной системой.И я не могу понять, как.
Система только отправляет события низкого уровня, такие как mouseUp
, mouseDown
, mouseDragged
и так далее.Когда я получаю событие mouseDown
, я не знаю, является ли это частью щелчка мышью, может ли это быть событием перетаскивания.Я должен ждать следующего события - если это mouseUp
, у меня есть щелчок.Но если я хочу обработать щелчок самостоятельно и не дать ему спуститься в оставшуюся очередь событий, я не могу просто украсть событие mouseUp
, поскольку предыдущий mouseDown
уже был отправлен.
Я думал, что смогу отложить событие mouseDown
и отправить его позже только после получения соответствующего mouseUp
, но это неправильно, я не хочу откладывать все системные события mouseDown
только из-за моего приложения.Я что-то упустил?