Разработка пунктов контекстного меню для OSX (Leopard и Snow Leopard)

Мне было интересно, как лучше всего создать пункт контекстного меню, который работал бы как с леопардом, так и с снежным барсом и работал с выбранными файлами и / или папками, отправляя их в сценарий оболочки.

Я знаю, что элементы контекстного меню устарели в SL - но означает ли это, что нет способа создать решение, которое бы работало как на Leopard, так и на Snow Leopard (с использованием applescript, xcode или automator)?

в основном я хочу передать файлы / папки в shellscript, который создает из них разные сжатые архивы (rar, zip, tbz2).

Спасибо за вашу помощь!


person z3cko    schedule 16.01.2010    source источник


Ответы (3)


На самом деле нет способа создать один общий фрагмент кода, который работал бы как в Leopard, так и в Snow Leopard.

Однако вы можете создать службу для Snow Leopard, а затем создать контекстное меню Finder для Leopard, которое просто вызывает эту службу.

Таким образом, вы можете выполнять большую часть своей реализации в Какао как часть службы и использовать часть контекстного меню Finder только в системах, которые не могут «изначально» использовать службу.

person Chris Hanson    schedule 17.01.2010
comment
это очень хороший подход! Спасибо за ответ! Можете ли вы рассказать мне больше об услугах в Leopard и SL? Значит, я могу создавать сервисы на Leopard, которые будут работать и на Snow Leopard? - person z3cko; 19.01.2010
comment
Вы должны иметь возможность создавать Сервисы на Leopard, которые также работают на Snow Leopard, но не используют все преимущества новых функций Сервисов. Просто загляните в Центр разработки Mac OS X, особенно в примечания к выпуску AppKit, чтобы узнать подробности о создании Сервисов. - person Chris Hanson; 21.01.2010

Если не использовать службу Automator (10.4 или выше) или обновленную систему служб (только 10.6), вам придется покинуть удобный мир Какао:

SampleCMPlugIn

person Joshua Nozzi    schedule 16.01.2010
comment
Я не понимаю вашего ответа полностью: почему вы имеете в виду оставить мир какао, а затем опубликовать кусок xcode? - person z3cko; 17.01.2010
comment
SampleCMPlugin использует углерод, а не какао. Какао не может этого сделать. Что касается публикации фрагмента xcode, я не понимаю, что вы имеете в виду. Если вы имеете в виду образец кода, я уже сделал это. Если не считать готового плагина, это полный и законченный пример. - person Joshua Nozzi; 17.01.2010

Вы можете создать приложение AppleScript, которое принимает перетаскиваемый на него файл / папку.

Вы, вероятно, можете заставить приложение Automator также принимать перетаскиваемые файлы.

Оба должны работать на Леопарде и Снежном Барсе. По крайней мере, в Snow Leopard вы можете настроить новый пункт меню «Сервис», который указывает на конкретное приложение для обработки выбора. Это делается через панель настроек клавиатуры.

person ExitToShell    schedule 16.01.2010
comment
у вас есть пример приложения applescript с перетаскиванием, которое работает на Leopard и Snow Leopard? - person z3cko; 19.01.2010