Что вам нужно сделать, чтобы убедить эти приложения в том, что вы фактически сгенерировали щелчок, - это явно установить значение поля «состояние щелчка» для события «вверх» мыши равным 1 (по умолчанию оно равно 0). Следующий код сделает это:
CGEventSetIntegerValueField(event, kCGMouseEventClickState, 1);
Он также должен быть установлен в 1 для мыши, но с использованием CGEventCreateMouseEvent () вместо CGEventCreate (), который будет сделан для вас.
Я проверил это, и оно работает на кнопках 'i' на панели инструментов и в результатах поиска Spotlight.
(Кроме того, если бы вы имитировали двойной щелчок, вам нужно было бы установить состояние щелчка 2 для событий как при нажатии кнопки мыши, так и при нажатии кнопки вверх).