2012-01-29 7 views
0

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

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

ответ

1

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

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

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

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

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

+0

Спасибо, Питер. Означает ли это, что услуга должна быть реализована в Objective-C/Cocoa, или MacRuby также может использоваться? Если вы знаете о хорошем примере для новичка в Service API с MacRuby, я был бы благодарен. Cheers – user1177059

+0

@ user1177059: Я думаю, вы можете использовать Carbon, но вы должны использовать Cocoa. Вы можете это сделать в MacRuby. –

 Смежные вопросы

  • Нет связанных вопросов^_^