Mac OS X: обнаружение уже открытого приложения, повторное открытие

У меня есть приложение для Mac OS X с окном, которое можно скрыть.

Когда пользователь щелкает значок приложения в доке (или открывает -b com.mycompany.myapp в терминале), я хотел бы, чтобы это окно отображалось снова (это приложение Qt, поэтому значение setVisible (true) известно ).

Как поймать событие активации приложения?

Спасибо за любую помощь.


person moala    schedule 04.08.2011    source источник
comment
Этот вопрос является дубликатом события щелчка ловушки на значке док-станции с помощью Qt на Mac.   -  person 0xced    schedule 04.08.2011
comment
@ 0xced: спасибо за ссылку, проверю.   -  person moala    schedule 04.08.2011


Ответы (1)


Это событие Apple, поэтому вы захотите использовать Apple Event Manager, чтобы зарегистрировать обработчик для основной пакет событие reopen-application.

Вот как это делается в Carbon. Вы отметили вопрос как [углерод], а не [qt], поэтому я предполагаю, что вам нужно решение Carbon, а не решение Qt.

person Peter Hosey    schedule 04.08.2011
comment
Решение Qt тоже было бы неплохо :) - person moala; 04.08.2011
comment
Вот руководство для вашего решения AE: th30z.blogspot .com / 2008/08 / qt4-mac-dock-icon-click_2711.html. - person moala; 04.08.2011
comment
Привет, есть ли способ определить, минимизировано ли приложение без заголовка с помощью настраиваемой обработки (в основном, просто скрывая его), а затем щелкнуто на панели запуска? Я могу получить обработчик, если щелкнуть значок док-станции, мне нужно получить аналогичное уведомление, когда приложение скрыто (свернуто), а также щелкнет значок панели запуска / значок папки приложений, чтобы я мог его показать .. - person SexyBeast; 12.01.2016
comment
@AttitudeMonger: Приложения и окна - это разные вещи. Вы можете проверить, не имеет ли ваше окно рамок, посмотрев на его styleMask. Вы можете сделать это в обработчике повторного открытия - Launchpad, AFAIK, не делает ничего, кроме двойного щелчка по вашему приложению в Finder или щелчка по нему в Dock. - person Peter Hosey; 10.06.2016