macos - 使 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 的操作系统上。
所以,我的问题是:有没有更好的方法来做我想做的事?
解决方案
推荐阅读
- php - 邮件服务器重新启动后 PHPMailer 不起作用
- svg - svg vs canvas - 浏览器游戏地图?
- pdf - PDF文件无法删除,需要解决
- python - 如何在 PyQt5 中单击 Qaction 时创建下拉菜单?
- sql - 根据时间戳选择 BigQuery 中最新的 N 条记录 - 更优化
- laravel - Bootstrap 导航栏不下拉
- windows - 带有 Clang/MinGW 的 VSCode C/C++ 智能感知
- windows - 从 .NET 框架 4.6.1、windows 应用程序项目创建单个安装/exe 文件
- ffmpeg - 如何将一个巨大的 .mp3 文件拆分成多个 200KB 的 .mp3 文件?每个都应该可以单独播放
- javascript - 客户端路由更改后反应服务器端渲染未更新