Следуя приведенному здесь коду: Событие перехвата щелчка на значке док-станции с использованием Qt на Mac , я попытался вызвать следующий метод непосредственно в конструкторе моего QApplication, чтобы получить уведомление о событиях щелчка значка док-станции:
[[NSAppleEventManager sharedAppleEventManager]
setEventHandler: m_dockIconClickEventHandler
andSelector: @selector(handleDockClickEvent:withReplyEvent:)
forEventClass: kCoreEventClass
andEventID: kAEReopenApplication];
Если я позвоню напрямую, я не получу уведомления об этом событии.Однако, если я вызываю его, используя QTimer::singleShot
с задержкой, скажем, 5000 мс, я получаю уведомления просто отлично.
Также, согласно документации Qt, "QTimer с интервалом ожидания 0истечет, как только все события в очереди событий оконной системы будут обработаны. "Поэтому я попробовал 0 мс, но это не сработало.1 или выше.
Зачем мне ждать и как лучше справиться с этой ситуацией, чем задержка на n мс?