我正在寻找Mac OS X辅助功能API来获取当前键盘(而非鼠标)焦点位置的坐标。根据我在http://www.apple.com/accessibility/pdf/Mac_OS_X_Tiger_vpat.pdf找到的文件的第2页,它是可行的:
支持的: Mac OS X公开了当前键盘的位置 鼠标通过Accessibility API专注于辅助技术 还提供了屏幕上焦点的视觉指示。
尽管如上所述,我似乎无法找到API本身。我是一名经验丰富的开发者(编码自1982年以来),但从未在Mac OS X上开发过;请温柔。
答案 0 :(得分:4)
OSX似乎具有非对称可访问性API;您可以使用NSAccessibilityProtocol来访问自己的应用,但要访问其他应用的辅助功能,您必须使用一组单独的界面/对象,AXUIElement和朋友。
我在Retreiving the window that has focus找到了一篇可能有用的文章:关键步骤似乎是:
AXUIElementCopyAttributeValue
询问kAXFocusedApplicationAttribute
AXUIElementCopyAttributeValue
再次向返回的对象询问焦点窗口,但这次是NSAccessibilityFocusedWindowAttribute
NSAccessibilityFocusedUIElementAttribute
您可能还想查看UIElementInspector的源代码,该代码显示鼠标指针下的元素信息(尽管它似乎没有对焦点做任何事情)。
看起来您还需要通过GUI(参见上文)或via terminal启用辅助功能API,以实现上述任何功能 - 大概这是为了让用户能够防范控制流氓的应用程序他们的桌面。
我还没有亲自使用过这些;但我对可访问性API非常熟悉,知道在哪里看 - 希望这会有所帮助。