按照此处链接的代码:Trap click event on dock icon using Qt on Mac,我尝试在 QApplication 的构造函数中直接调用以下方法来接收停靠图标单击事件的通知:
[[NSAppleEventManager sharedAppleEventManager]
setEventHandler: m_dockIconClickEventHandler
andSelector: @selector(handleDockClickEvent:withReplyEvent:)
forEventClass: kCoreEventClass
andEventID: kAEReopenApplication];
如果我直接调用它,我不会收到此事件的通知。但是,如果我用QTimer::singleShot
5000 毫秒的延迟调用它,我就会收到通知。
此外,根据 Qt 文档,“一旦窗口系统的事件队列中的所有事件都已处理完毕,超时间隔为 0 的 QTimer 就会超时。” 所以我尝试了 0 毫秒,但没有奏效。1或以上似乎。
为什么我需要等待,有什么比延迟n毫秒更好的方法来处理这种情况?