gpt4 book ai didi

objective-c - Macos x 应用程序的快捷方式

转载 作者:太空狗 更新时间:2023-10-30 04:01:13 32 4
gpt4 key购买 nike

我需要阅读 MAC OS 中最前面的应用程序的所有快捷方式。 Cocoa,Objective-c中有API或者Class提供这个吗?

最佳答案

Accessibility API 正是您所需要的。不幸的是,它相当复杂,最好通读 UIElementInspector source code查看它的使用方式,以及与 Accessibility Programming Guidelines for Mac 中的辅助应用程序相关的部分.

您需要大量代码,所以我只概述步骤。

  1. 使用[[NSWorkspace sharedWorkspace] runningApplications]获取应用程序列表并获取其 active 的应用程序属性是 YES .
  2. 使用 NSRunningApplication 获取该应用程序的 PID的 processIdentifier属性(property)。
  3. 现在我们进入辅助功能,通过 Application Services 访问应用程序接口(interface)
  4. 使用 AXUIElementCreateApplication 创建一个表示事件应用程序的 AXUIElement | ,这需要 pid作为论点。
  5. 现在你有一个 AXUIElementApplication角色,或 AXApplication伪类。你会想要继续向下的元素层次结构 AXApplication -> AXMenuBar -> AXMenuBarItem -> AXMenuItem .注意 AXMenuItems可以有其他AXMenuItems嵌套在它们下面。
  6. 要遍历层次结构,请使用 AXUIElementCopyAttributeValues 获取 kAXChildrenAttribute 的值.这将返回一个子数组 AXUIElements .
  7. 最后,当您到达 AXMenuItem 时元素,检查它们的 Menu Item Cmd Char、Glyph、Modifiers 和 Virtual Key 属性以获得实际的快捷方式。属性名称的常量,例如 kAXMenuItemCmdCharAttribute , 已列出 here .

关于objective-c - Macos x 应用程序的快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10960423/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com