Mac OSx: добавление элемента в контекстное меню Finder - PullRequest
4 голосов
/ 01 ноября 2011

В 10.5 у нас есть встроенная поддержка плагинов контекстного меню. Это позволяет нам добавлять элементы во время выполнения и добавлять разные меню для разных типов файлов.

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

Это привело меня к некоторому внедрению кода в Finder (как это сделал DropBox), но я вроде новичок в этой конкретной задаче, но я готов это сделать. Кто-нибудь может дать мне отправную точку.

Спасибо в ожидании.

Ответы [ 2 ]

5 голосов
/ 16 ноября 2011

Вы можете начать с mach_star . mach_star - это набор кода с открытым исходным кодом для подавления, замены и / или расширения функциональности Mac OS X на очень низком уровне. Его основными компонентами являются mach_override (замена и / или расширение существующих функций во время выполнения) и mach_inject (динамическая загрузка кода в работающий процесс).

2 голосов
/ 06 ноября 2014

Вплоть до OS X 10.9.x только внедрение кода в процесс Finder через mach_inject было решением (и даже Dropbox делал это). Однако начиная с 10.10 существуют плагины Finder, которые могут настраивать контекстные меню, добавлять кнопки на панель инструментов и накладывать поверх значков файлов.

Обновление: поскольку внедрение кода OS X 10.11 не будет работать вообще из-за защиты целостности системы. Так что только плагин Finder Sync.

...