cocoa - 如何获取 NSRunningApplication 的窗口

标签 cocoa nsapplication nsworkspace nsrunningapplication

我想获取正在运行的应用程序的窗口列表。 我可以从 [[NSWorkspace sharedWorkspace] runningApplications] 获取正在运行的应用程序列表,但窗口列表仅在 NSApplication 上可用。 是否有某种方法可以从 NSRunningApplication 转换为 NSApplication,或者有某种方法可以更直接地获取窗口列表?

最佳答案

您需要查看 CoreGraphics 调用CGWindowListCopyWindowInfo

你这样调用它

    CFArrayRef windowList = CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly | kCGWindowListExcludeDesktopElements, kCGNullWindowID);

然后迭代窗口信息数组,找到来自您感兴趣的应用程序的窗口信息,并用它执行您想要的操作。

关于cocoa - 如何获取 NSRunningApplication 的窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13760760/

相关文章:

xcode - 在应用程序启动 OSX 时运行代码

objective-c - 带有 WebView 的 Mac 屏幕保护程序崩溃

objective-c - NSTask 'launch path not accessible'

cocoa - 如何知道 Mac OS X Lion 中的 NSWindow 是否全屏?

safari - 无论系统浏览器设置为什么,都可以使用 Safari 打开 URL

objective-c - 收到应用程序在 OSX 上启动的通知

objective-c - 无法检测到与另一个用户一起运行的应用程序(通过切换用户)

iphone - 我收到警告 : incompatible Objective-C types assigning 'struct NSString *' , 预期为 'struct NSMutableString *'

objective-c - 从 C++ 循环启动 Cocoa GUI 并传递引用

objective-c - 文档表不响应键盘事件