Сделать VoiceOver анонсировать текст до 10.9 - PullRequest
0 голосов
/ 10 декабря 2018

Я хочу, чтобы VoiceOver произнес некоторый текст в NSTextView, который он не будет произносить самопроизвольно, в основном текст добавляется программно, пока представление имеет фокус.OS X 10.9 добавила API NSAccessibilityAnnouncementRequestedNotification как способ сделать это (хотя по какой-то причине сказано, что macOS 10.7+ на странице документации Apple ), но я хочу, чтобы мое приложение также работало на 10.7.

РЕДАКТИРОВАТЬ: я сделал код, используя NSAccessibilityAnnouncementRequestedNotification, скомпилировать и запустить на 10.7 (, добавив ряд пропущенных определений ), но до 10.9 он, похоже, не имел никакого эффекта.

Я думаю, что я разработал способ обмануть VoiceOver, заставив его думать, что текст, который я хочу, чтобы он был выделен, (в основном, возвращает строку и диапазон, который я хочу прочитать при запросе NSAccessibilityAttributedStringForRangeParameterizedAttribute илиNSAccessibilitySelectedTextRangeAttribute), а затем опубликовать NSAccessibilityValueChangedNotification.Это в значительной степени работает, но заставляет VoiceOver произносить «Selection Replaced» всякий раз, когда пользователь начинает вводить что-либо в текстовом представлении, на любой ОС, более новой, чем 10.7.

Итак, мой вопрос:есть ли лучший способ сделать то, что я хочу?

...