Quartz Event Services позволяет вам создавать события, которые прослушивают события. Вы можете зарегистрироваться, чтобы прослушать соответствующие типы событий, а затем пройти через новое событие вместо «реального» события. Взгляните на CGEventTapCreate в справочнике менеджера служб событий Quartz.
Это довольно низкоуровневая техника, которую легко сломать, поэтому нужно быть осторожным. В частности, когда вы нажимаете на очередь событий, вы можете легко заблокировать вашу систему, когда вы запускаете код в основном потоке, и он падает.