![](/img/trans.png)
[英]How to get file paths for current open documents in a macOS project in Swift?
[英]How to get the list of open windows on MacOS in Swift?
實際上,我正在嘗試獲取所有打開的窗口列表,如下所示:
let options = CGWindowListOption(arrayLiteral: .excludeDesktopElements, .optionOnScreenOnly)
let windowsListInfo = CGWindowListCopyWindowInfo(options, CGWindowID(0))
let infoList = windowsListInfo as NSArray? as? [[String: AnyObject]]
但這里的問題是我還在狀態欄上收到了Dock
或Window Server
、 SystemUIServer
或小部件。 如何改進我的代碼以避免這些元素並僅獲取 windows 列表,如Xcode
、 Finder
等?
似乎所有可見窗口的鍵kCGWindowLayer
的值為0
import Cocoa
let options = CGWindowListOption(arrayLiteral: .excludeDesktopElements, .optionOnScreenOnly)
let windowsListInfo = CGWindowListCopyWindowInfo(options, CGWindowID(0))
let infoList = windowsListInfo as! [[String:Any]]
let visibleWindows = infoList.filter{ $0["kCGWindowLayer"] as! Int == 0 }
print(visibleWindows)
public static func visibleWindows() -> [NSWindow]
{
return NSApplication.shared.windows.filter { $0.isVisible }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.