我希望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的任何操作系统上开始在文本视图中键入任何内容时就可以使用。
所以,我的问题是:有没有更好的方法来做我想做的事?