有沒有辦法過濾由[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返回終止的進程?