有没有办法过滤由[NSWorkspace runningApplications]
给出的应用程序列表以隐藏所有守护进程等等,而不是手动检查每个应用程序的plist是否有UIAgent键?如果应用程序没有显示在码头中,我对它不感兴趣。过滤器[NSWorkspace runningApplications]仅包含用户应用程序(无守护进程/ UIAgents)
1
A
回答
3
更新:如果您使用的是Objective-C,下面我的原始答案仍然适用,但如果您使用的是Swift,则可以非常容易地执行,因为Swift的filter
函数适用于集合类型。
let workspace = NSWorkspace.sharedWorkspace()
let apps = workspace.runningApplications.filter { (app) -> Bool in
return app.activationPolicy == .Regular
};
在类似Objective-C的东西可以与NSArray的各种断言为基础,列举方法进行,但他们会多一些啰嗦比雨燕对应。
我找到了一些搜索后的答案,但它的东西可能不会立即明显。
一个简单的方法,其具有在Dock图标是做一个简单的快速列举回路和检查每个NSRunningApplication
的activationPolicy
,像这样只抢的过程:通常
NSWorkspace *workspace = [NSWorkspace sharedWorkspace];
NSArray *apps = [workspace runningApplications];
for (NSRunningApplication *a in apps) {
if (a.activationPolicy == NSApplicationActivationPolicyRegular) {
// Do stuff here
}
}
,与正常的窗口和应用程序码头图标使用NSApplicationActivationPolicyRegular
。菜单附加功能和Alfred型应用程序使用NSApplicationActivationPolicyAccessory
。守护进程等,没有任何用户可见性使用NSApplicationActivationPolicyProhibited
。这些常量与每个应用程序的Info.plist中的LSUIElement和LSBackgroundOnly键相对应。
这种方法应该捕获具有允许用户通过动态设置其activationPolicy
来切换应用程序的码头图标的设置的应用程序。
相关问题
- 1. Monotouch守护进程应用程序
- 2. 扭曲:从另一个应用程序守护进程产生应用程序守护进程
- 3. MacOsX:如果守护程序以根用户身份运行,从守护程序启动使用NSWorkspace的应用程序不起作用
- 4. 此WSGI应用程序无法访问守护进程:/mod.wsgi
- 5. 守护事件机器应用程序
- 6. 使用System_Daemon包的Codeigniter守护进程
- 7. OneDrive for Business API - 仅限应用程序令牌的守护程序租户
- 8. Hadoop守护程序的用户帐户
- 9. 使用python,守护进程
- 10. 定时器()作为守护进程与非守护进程
- 11. 用Clojure/JVM守护进程
- 12. 通过PowerShell运行远程守护进程(不仅仅是)进程的问题
- 13. nodejs + azure活动目录+守护进程应用程序
- 14. Linux守护进程vs前台应用程序
- 15. 将守护进程/ Web应用程序添加到Linux组?
- 16. 使用JSVC守护java应用程序
- 17. 创建类似服务守护进程Android应用程序
- 18. Python守护进程
- 19. Linux守护进程
- 20. 使用python守护进程获取OS X 10.7上的活动应用程序
- 21. 我无法使用守护进程运行我的Rails应用程序gem
- 22. Linux:从init.d守护进程启动GUI应用程序
- 23. 守护进程启动应用程序启动
- 24. C#托盘图标应用程序与守护进程
- 25. 我们如何制作守护进程应用程序?
- 26. 从Cocoa应用程序启动守护进程
- 27. 守护进程应用程序的最佳语言?
- 28. 使用转换用户线程 - >守护程序线程
- 29. 守护程序和应用控制
- 30. runningApplications返回终止的进程?