首页 > 解决方案 > 使 VoiceOver 宣布 10.9 之前的文本

问题描述

我希望 VoiceOver 在 NSTextView 中说出一些不会自发说出的文本,基本上是在视图具有焦点时以编程方式添加的文本。OS X 10.9 添加了 NSAccessibilityAnnouncementRequestedNotification API 作为执行此操作的一种方式(尽管出于某种原因它在Apple 文档页面上说 macOS 10.7+ ),但我希望我的应用程序也可以在 10.7 上运行。

编辑:我使用 NSAccessibilityAnnouncementRequestedNotification 编译并在 10.7 上运行代码(通过添加一些缺少的定义),但在 10.9 之前它似乎没有效果。

我想我已经找到了一种方法来欺骗 VoiceOver 认为我想要它说的文本被选中,(基本上返回字符串和我想要在被要求 NSAccessibilityAttributedStringForRangeParameterizedAttribute 或 NSAccessibilitySelectedTextRangeAttribute 时读取的范围)然后发布NSAccessibilityValueChangedNotification。这非常有效,但是每当用户开始在文本视图中输入任何内容时, VoiceOver 都会说“Selection Replaced”,在任何高于 10.7 的操作系统上。

所以,我的问题是:有没有更好的方法来做我想做的事?

标签: macoscocoavoiceover

解决方案


推荐阅读