gpt4 book ai didi

objective-c - 如何获取一个AXUIElement对应的Objective-C类名?

转载 作者:太空狗 更新时间:2023-10-30 03:33:19 28 4
gpt4 key购买 nike

Apple 的辅助功能检查器工具显示与当前检查的 UI 元素对应的 Objective-C 类。请参阅此屏幕截图最底部的 NSButtonCell:

Accessibility Inspector screenshot

但是,如何在我自己的代码中提取这些信息? Apple's seven year old UIElementInspector sample code 中的辅助功能方法不要显示元素的类名。

逆向工程 Accessibility Inspector 暗示可以通过 AXClassName 属性获取 Objective-C 类名,但该属性对我来说始终为 nil。

最佳答案

AppKit 将对 AXClassName 属性和其他几个属性的访问限制为具有 com.apple.private.accessibility.inspection 授权的应用程序。 Accessibility Inspector 用于访问辅助信息的 XPC 服务具有此权限。由于这是私有(private)权利,我相信它只能添加到由 Apple 证书签名的应用程序中。

您可以像这样从 Accessibility Inspector 的 XPC 服务中剥离权利来自己确认权利是关键(首先备份 Accessibility Inspector!):

codesign -f -s - /Applications/Xcode.app/Contents/Applications/Accessibility\ Inspector.app/Contents/Frameworks/AccessibilityAuditDeviceManager.framework/XPCServices/axAuditService.xpc

如果您随后打开 Accessibility Inspector,您会发现大部分功能都可以正常工作,除了类名之类的东西在私有(private)权限上是封闭的。

具有授权 XPC 服务的可访问性检查器

具有授权的 XPC 服务的可访问性检查器

关于objective-c - 如何获取一个AXUIElement对应的Objective-C类名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45590888/

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