Добавление кнопок на панель инструментов Finder? - PullRequest
23 голосов
/ 05 декабря 2011

В Dropbox есть опция добавления кнопки на панель инструментов Finder. Он даже появляется в окне «Настройка панели инструментов ...». Я не могу найти никакой документации о том, как это делается ... Кто-нибудь знает, как это сделать, или кто-то может указать мне на какую-то документацию или пример кода?

РЕДАКТИРОВАТЬ ОДИН:

Полагаю, для начала нужно найти местоположение существующих значков и любого связанного кода.

Я заметил, что в Dropbox есть файлы в Library / DropboxHelperTools / Dropbox_u501 с именами mach_inject_bundle_stub.bundle и FinderLoadBundle, которые могут творить чудеса. Dropbox также помещает значок «галочка» на иконки Finder. Этот код может быть вовлечен: github.com/rentzsch/mach_star

РЕДАКТИРОВАТЬ ВТОРОЕ: Разговор Rian Hunter с Dropbox о процессе уже здесь, около 15:30. http://blip.tv/pycon-us-videos-2009-2010-2011/pycon-2011-how-dropbox-did-it-and-how-python-helped-4896698

Поиск в файле DropboxBundle в Dropbox_u501 показывает значки и некоторый скомпилированный код. Код предполагает, что Райан Хантер является автором: http://twitter.com/timeserena

На своем github у Риана есть своя собственная версия кода Маха-звезды - https://github.com/rianhunter/mach_star - хотя он выглядит намного старше

РЕДАКТИРОВАТЬ ТРИ

Несколько недель назад в Стэнфорде проводилась «Мастерская по внедрению кода» - http://stanfordacm.com/past/ - организованная Рианом. Если у кого-то есть заметки, пожалуйста, дайте мне знать!

Ответы [ 4 ]

9 голосов
/ 11 февраля 2015

Вы можете использовать Finder Sync расширение приложения (начиная с OS X v10.10).

Расширение Finder Sync может:

  • Добавлять, удалять и обновлять значки и метки для элементов в отслеживаемой папке.
  • Отображать контекстное менюкогда пользователь нажимает Control-элемент в контролируемой папке.
  • Добавьте пользовательскую кнопку на панель инструментов Finder.
8 голосов
/ 05 декабря 2011

Dropbox использовал недокументированную магию. Нет официально поддерживаемого способа сделать это; ближайший, который вы можете получить без реверс-инжиниринга, - Услуги .

(Обновление: Начиная с macOS 10.11, то, что делал Dropbox, больше вообще невозможно. Защита целостности системы теперь предотвращает внедрение кода в системные процессы, такие как Finder.)

2 голосов
/ 26 февраля 2013

Выступление Риана на PyCon 2011 (на blip.tv) не объясняет ничего, кроме «Мы обратили внимание на Finder».Хотя материал mach_star является ценным, он по-прежнему не объясняет, как заставить работать иконку боковой панели.А в Stanford 'Code Injection Workshop' не было опубликовано ни одного контента об этом методе.

У меня есть nmd и class-dump'd оба пакета, которые Dropbox устанавливает для каждого пользователя в / Library / DropboxHelperTools, ивывод обеспечивает хорошее понимание.Если я вернусь к этому, я закончу свое исследование и опубликую его.Скорее всего, это не произойдет в течение некоторого времени, поэтому мы надеемся, что это толчок поможет кому-то еще.

0 голосов
/ 04 декабря 2013

Простой промежуточный ответ, который может быть достаточным для некоторых людей, - просто создать значки, похожие на кнопки.

например. Я создал «новый текстовый файл здесь» и «новые иконки терминала здесь» для моего Finder:

enter image description here

Метод можно найти здесь .

Недостатком является то, что они должны быть квадратными и не иметь анимации / меню или отображаться на «панели инструментов настройки» и т. Д.

...