【发布时间】:2012-04-10 03:25:42
【问题描述】:
我正在尝试让我的 mac 应用在 Safari 启动时执行某些操作。检测 Safari 启动的明显方法是轮询正在运行的进程。有没有更好的方法来做到这一点?
我在想可能有一些 API 可以用来注册回调,或者我可以观察到通知中心事件。
【问题讨论】:
标签: macos cocoa notifications
我正在尝试让我的 mac 应用在 Safari 启动时执行某些操作。检测 Safari 启动的明显方法是轮询正在运行的进程。有没有更好的方法来做到这一点?
我在想可能有一些 API 可以用来注册回调,或者我可以观察到通知中心事件。
【问题讨论】:
标签: macos cocoa notifications
您可以将自己添加到NSWorkspace 的通知中心,作为NSWorkspaceDidLaunchApplicationNotification 的观察者。当您收到通知时,请检查它提供的 NSRunningApplication 实例(通知的 userInfo 中的对象,键为 NSWorkspaceApplicationKey)以确定启动的是否是 Safari。
【讨论】:
【讨论】: