Я хочу попробовать некоторые программы Mac, создав простую фоновое приложение, которое записывает всю историю текста, которую пользователи выделяют в других приложениях, будь то в PDF, текстовом документе или веб-странице (звучит глупо, но для меня это очень полезно). Является ли это возможным?Mac программирования: Получите выделенный текст в приложении?
ответ
Это невозможно в общем случае и безумно сложно даже при рассмотрении приложений по одному. Это может быть достигнуто для некоторых приложений с введением кода (но это безумно хрупко), и теоретически может быть сделано для некоторых приложений с использованием AppleScript (но только в том случае, если приложение вам поможет).
Гораздо более распространенным является создание Services, что позволяет вам интегрироваться с другими карточками приложений (с вмешательством пользователя). Но практически никакие приложения не выставляют API для их выделения.
@nielsbot задает интересный вопрос, и, возможно, это подход. Вы должны позвонить AXUIElementCreateSystemWide
, чтобы создать общесистемный объект доступности, а затем добавить себя в качестве наблюдателя, ожидающего kAXSelectedTextChangedNotification
. Вероятно, это работает для доступных приложений (большинство приложений, которые используют стандартные виджеты). Поэтому стоит исследовать.
- 1. Пользовательская клавиатура: получите выделенный текст
- 2. Получить выделенный текст в приложении OSX?
- 3. Пользовательские выпадающий выделенный текст в приложении WPF
- 4. Mac получить выделенный текст из главного окна
- 5. Удалить выделенный/выделенный текст
- 6. Выделенный текст в TextView
- 7. Получите выделенный текст браузера в строку javascript, закодированную в UTF8
- 8. Получите выделенный текст и поместите его в переменную
- 9. Получите выделенный текст ярлыка из выбранной строки в UITableViewController
- 10. выделенный текст в iframe
- 11. Выделенный текст в Word
- 12. Mac OS X: глобальный ярлык, чтобы получить выделенный текст/изображение в приложении
- 13. Получить выделенный текст в активном приложении в Cocoa
- 14. Получите выделенный текст, посчитайте его, откройте его. расширение Chrome
- 15. Получите объем памяти, выделенный malloc
- 16. SWT Browser - получить выделенный текст
- 17. Radsearchbox не отображает выделенный текст
- 18. jQuery - изменить выделенный текст
- 19. KDevelop: преобразовать выделенный текст?
- 20. Получить выделенный текст
- 21. Как чирикать выделенный текст?
- 22. jQuery установить выделенный текст
- 23. Как получить выделенный текст?
- 24. sIFR выделенный текст фона
- 25. Awesomplete - получить выделенный текст
- 26. UITextview выделенный текст
- 27. Получить выделенный текст
- 28. Очистить ComboBox выделенный текст
- 29. Выделенный текст из ComboBox
- 30. Как нарисовать выделенный текст
Вы можете сделать это с помощью API-интерфейсов доступности? – nielsbot
Я просмотрел API Accessibility и попытался использовать Accessibility Inspector для проверки пользовательских интерфейсов некоторых обычных приложений, таких как Chrome, SublimeText. В этих приложениях не было информации о выбранном тексте. Интересно, как это делают приложения Apple, такие как Dictionary. –
Словарь обычно использует Сервис. Простое выделение текста не приводит к тому, что приложение Dictionary может изменить свою информацию. –