ここからリンクされたコードに従って: Mac で Qt を使用してドック アイコンのクリック イベントをトラップし、QApplication のコンストラクターで次のメソッドを直接呼び出して、ドック アイコンのクリック イベントの通知を受信しようとしました。
[[NSAppleEventManager sharedAppleEventManager]
setEventHandler: m_dockIconClickEventHandler
andSelector: @selector(handleDockClickEvent:withReplyEvent:)
forEventClass: kCoreEventClass
andEventID: kAEReopenApplication];
直接呼び出すと、このイベントの通知を受け取りません。ただし、QTimer::singleShot
たとえば 5000 ミリ秒の遅延を使用して呼び出すと、通知を問題なく受け取ります。
また、Qt のドキュメントによると、「タイムアウト間隔が 0 の QTimer は、ウィンドウ システムのイベント キュー内のすべてのイベントが処理されるとすぐにタイムアウトします。」だから私は0ミリ秒を試しましたが、うまくいきませんでした。1以上のようです。
なぜ待機する必要があるのですか? nミリ秒遅延するよりも、この状況を処理するためのより良い方法は何ですか?