objective-c - 获取除主应用程序之外的其他正在运行的应用程序的主菜单

标签 objective-c macos cocoa xcode4

我知道这个问题有点令人困惑,但让我解释一下......

我希望能够获取所有正在运行的应用程序的菜单项标题,而不仅仅是主应用程序。我知道如何使用下面的代码获取主应用程序菜单项:

NSMenu *mainMenu = [[NSApplication sharedApplication] mainMenu];

for (NSMenuItem *item in [mainMenu itemArray]){
    NSLog(@"%@", [item title]);
}

而且我还知道如何使用下面的代码获取所有正在运行的应用程序的列表:

[[NSWorkspace sharedWorkspace] runningApplications]

现在我希望能够获取共享工作区中某个应用程序的主菜单。

这可能吗?如果可以,请分享:)谢谢!

最佳答案

您需要使用辅助功能 API 来访问其他应用程序的 GUI 元素。请记住,您(或您的应用的客户)需要在通用访问系统偏好设置中启用“启用辅助设备访问”。

要开始使用,请参阅 The Accessibility Hierarchy .

关于objective-c - 获取除主应用程序之外的其他正在运行的应用程序的主菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9218417/

相关文章:

cocoa - NSMenuItem keyequivalent 中的丑陋字符

objective-c - 在 Cocoa 中导出 2 分钟的 QuickTime 影片剪辑

iphone - 为什么在 iOS5 中用中文创建 framesetter 非常慢

iphone - 多个按钮可以有一个 socket 吗?

ios - 如何从父类调用一个方法到它的子类?

Swift StatusBarItem,使按钮支持拖放

objective-c - NSArrayController/NSTreeController 和 Cocoa View

ios - 按钮上的标签,如何在 iOS7 中突出显示按下按钮时的文本?

bash - 为什么直接运行bash脚本不需要用户权限,但是运行脚本的.app文件需要用户权限?

winforms - 将 C#.NET 应用程序从 Windows 迁移到 OSX(Windows 窗体)