使VoiceOver宣布10.9之前的文本

时间:2018-12-10 12:37:27

标签: macos cocoa voiceover

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

编辑:我使用NSAccessibilityAnnouncementRequestedNotification编写了代码,并在10.7(by adding a number of missing definitions)上运行,但在10.9之前似乎无效。

我想我已经找到了一种方法,诱使VoiceOver认为我要说的文本已被选中(基本上是返回字符串和当我要求输入NSAccessibilityAttributedStringForRangeParameterizedAttribute或NSAccessibilitySelectedTextRangeAttribute时要读取的范围),然后发布NSAccessibilityValueChangedNotification。这几乎可以正常工作,但是makes VoiceOver say "Selection Replaced"每当用户在高于10.7的任何操作系统上开始在文本视图中键入任何内容时就可以使用。

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

0 个答案:

没有答案