如何获取与AXUIElement对应的Objective-C类名?

前端之家收集整理的这篇文章主要介绍了如何获取与AXUIElement对应的Objective-C类名?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Apple的Accessibility Inspector工具显示与当前检查的UI元素对应的Objective-C类.请参见此屏幕截图底部的NSButtonCell:

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

对Accessibility Inspector进行反向工程,暗示可以通过AXClassName属性获取Objective-C类名,但该属性对我来说总是为零.

解决方法

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

您可以通过从辅助功能检查器的XPC服务中剥离权利来自行确认权利是关键的(首先备份辅助功能检查器!):

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

如果您随后打开辅助功能检查器,您将看到大多数所有功能都能正常工作,除了在私有权利上选通的类名之外.

具有授权XPC服务的辅助功能检查器

具有无标题XPC服务的辅助功能检查器

猜你在找的C&C++相关文章