如何获取进程列表(在弹出按钮中),然后当用户选择应用程序时,我可以隐藏/终止/最小化/退出应用程序吗?
答案 0 :(得分:2)
-[NSWorkspace runningApplications]
将为您提供NSArray
个NSRunningApplication
个实例,代表当前正在运行的进程。我不确定是什么原因导致程序从该列表中排除,但它确实包括用户从Finder启动的任何应用程序。它还包括一些你不想搞砸的东西(Finder本身和loginwindow进程),以及不露面的应用程序。
您可以使用filteredArrayWithPredicate:
过滤掉这些内容。您要保留的对象的activationPolicy
为NSApplicationActivationPolicyRegular
。
对数组进行过滤后,您可以使用bundleIdentifier
,bundleURL
或localizedName
进行搜索,以查找所需的应用。然后根据需要将hide
或terminate
发送到NSRunningApplication
个实例。
Apple有一个展示所有这些的示例项目,名为AppList。