当iTunes在Mac OS X上启动时,我正试图拦截,所以我可以重新启动我的应用程序以解决iTunes Framework中的一些错误。
我所做的是临时禁用我的应用程序的沙盒并听取所有NSDistributedNotificationCenter
通知,以便检查它们并选择我想要的那些。
我发现iTunes启动时显然发送此事件:
object: com.apple.iTunes.help name: HelpBookRegistrationDidChange userInfo: (null)
这似乎相当独特,但也没有提供确切的线索,它只与100%的启动事件有关。
有谁知道这是否是拦截此类事件的安全方法?
如果是这样,一旦我的应用程序再次沙盒化,我需要请求临时权限才能听取此类事件,我该如何在代码中执行此操作?
您是否认为脚本桥在这种情况下可以提供帮助?
答案 0 :(得分:1)
您无需为此禁用沙盒,只需观察NSWorkspaceDidLaunchApplicationNotification
提供的通知中心内的NSWorkspace
,而不是分发的沙箱。
您将在通知的用户信息中获得NSRunningApplication
的实例,您可以使用该实例确定启动的应用是否为iTunes(使用bundleIdentifier
属性)。