我同时使用 NSWorkspaceDidActivateApplicationNotification 和 NSWorkspaceDidLaunchApplicationNotification 通知来了解用户正在与哪个应用程序进行交互。
问题是,如果一个应用程序刚刚打开并仍在启动,我首先会收到一个激活通知,然后很快就会收到启动通知。
有没有办法在激活方法中知道应用程序仍在启动但尚未准备好使用?(仍在码头弹跳)
我看到苹果的 ichat 示例项目没有使用上述方法,而是只监听启动通知。然后它使用 kAXApplicationActivatedNotification 将 AXObserver 添加到应用程序。这是首选方式吗?(还有 NSRunningApplications 为所有已加载的应用程序添加观察者)。
我想继续使用简单的 NSNotifications,因为我认为它可能会占用更少的内存。(无需为每个加载的应用程序留一个观察者)。