You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

重启后无法接收kAXSelectedTextChangedNotification,启动辅助检查器后恢复

Apple辅助功能API通知接收异常问题

注册AXObserver监听kAXSelectedTextChangedNotification等通知后,许多已开启应用辅助权限的新用户无法触发该通知,但kAXWindowMovedNotification等其他通知可正常接收。

复现步骤

  • 移除应用辅助权限
  • 重启电脑
  • 重新开启权限
    此时仍无法接收kAXSelectedTextChangedNotification,但其他通知正常。

关键现象

启动Apple的*Accessibility Inspector(辅助检查器)*后,该通知即可正常接收。由此推测两种可能:

  1. 我们启动观察者时缺少必要配置,而Accessibility Inspector的正确设置使系统正常工作;
  2. Accessibility Inspector使用了我们无法访问的Apple私有API。

已尝试的解决方案

  • 为SystemWide元素、Application元素及AXApplication子元素等不同AXUIElement订阅该通知,均无效,直到启动Accessibility Inspector(操作符合Apple文档中应添加到根Application AXUIElement的要求)。
  • 重构代码改为仅调用一次AXUIElementCreateApplication,排除多次调用导致通知发送到错误元素的可能,但问题仍存在。
  • 尝试遍历子AXUIElement找到带有kAXSelectedTextAttribute的元素并订阅,未解决问题,且此方向不符合启动检查器后恢复的现象。
  • 仅为特定文本框AXUIElement添加监听器可接收该文本框的通知,但无法覆盖所有文本框,不实用。

需求与额外发现

遍历整个辅助功能层级为所有带kAXSelectedTextAttribute的子视图加监听器并非长期方案,速度慢且无法应对元素动态变化。希望实现文档所述的高层Application AXUIElement接收该通知的效果,且启动检查器后已验证此可行,需复刻其操作逻辑。

此外,实现遍历策略时发现辅助功能层级元素极少(多数应用仅2-3层),疑似未完全初始化,但添加5秒延迟无改善。

寻求解决方案。

内容的提问来源于stack exchange,提问作者Tim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 03:05:56