Как прочитать глобальный выбор с помощью MacRuby? - PullRequest
0 голосов
/ 30 января 2012

Как я могу прочитать глобальный выбор пользовательского интерфейса в MacRuby?Например, для выбранного текста в Preview.

Не имея опыта работы с Ruby и Cocoa, я решил сделать решающий шаг и написать небольшое словарное приложение, чтобы помочь себе с переводом.Все части готовы, мне просто нужно знать, как читать выделенный текст на горячей клавише.

1 Ответ

1 голос
/ 30 января 2012

Вы не можете, потому что его нет.

Глобального выбора не существует.Существует одно выделение текста на текстовое представление (или другое представление, содержащее выбираемый текст).Окно может иметь любое количество таких представлений, приложение может иметь любое количество таких открытых окон, и пользователь может иметь любое количество таких запущенных приложений.

Еще одна проблема состоит в том, что не все приложения являются Какао. большинство доступны, но не все;Пользовательские представления могут сбить вас с толку (например, подумайте об инструменте «Текст» в графическом редакторе).Если пользователь выбирает текст в приложении, не являющемся какао, скорее всего, вы не сможете его прочитать.

Если вы хотите получить доступ к выделенному тексту в сфокусированном виде в сфокусированном окне в целевом приложениилучший способ сделать это - заставить ваше приложение предоставлять Сервис , который пользователь может вызывать практически из любого приложения Какао и из некоторых более просвещенных приложений Carbon.Это лучшее, что вы можете сделать.

Собственный словарь Apple получает специальную обработку в AppKit (включая наличие плавающей панели словаря в приложениях Cocoa и Carbon), но в остальном работает так же: он предоставляет сервис, которыйв каждом меню Сервисов (если пользователь не выключил его).

...