Как Записать плагин Средства поиска OS X

Думайте о нем как о естественной ортогональной операции для разделения.

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

Для удобочитаемости, я хотел бы видеть его на языке, но я не думаю, что это на самом деле выполнимо - если бы iterability были интерфейсом затем, то это могло бы быть добавлено к интерфейсу, но это - просто конвенция и таким образом, нет никакого центрального способа добавить его к набору вещей, которые повторяемы.

47
задан notnoop 18 August 2009 в 14:40
поделиться

3 ответа

К сожалению, программирование плагина Finder на самом деле действительно все еще требует работы с COM. Если вы посмотрите на подпроект SCFinderPlugin проекта SCPlugin, вы обнаружите, что он следует точно таким же методам, изложенным в вашей первой ссылке, включая настройку vtable для COM, написание функций AddRef / ReleaseRef и так далее. Написание плагина, в котором вы одновременно управляете старой школой управления памятью Carbon, управлением памятью в стиле COM и управлением памятью Carbon в стиле какао / нового стиля, может быть невероятной болью - и это полностью игнорирует тот факт, что вы будете взаимодействие в трех или более радикально разных API, с разными соглашениями об именах и семантикой вызовов. Назвать ситуацию истерически бедной было бы большим преуменьшением.

С другой стороны, Finder в Mac OS X 10.6 Snow Leopard был полностью переписан на Cocoa - и вместе с ним появились значительно более совершенные интерфейсы плагинов. Если вам посчастливилось оказаться в ситуации, когда вы на самом деле можете нацеливаться только на Snow Leopard, вам, вероятно, следует получить членство ADC Premier или выше, загрузить предварительные сборки и код для этого. Кроме того, ваш плагин может не работать на 10.6 в любом случае без перезаписи Cocoa, поэтому, возможно, имеет смысл взглянуть на Snow Leopard до того, как он будет выпущен, в любом случае.

18
ответ дан 26 November 2019 в 19:40
поделиться

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

2
ответ дан 26 November 2019 в 19:40
поделиться

Комплектация тонкая; мне никогда не было действительно ясно, поддерживаются ли плагины Finder на самом деле. Тем не менее, еще несколько выводов:

  • SampleCMPlugIn - Конечно, на основе углерода, так как Finder тоже. Обратите внимание, что почти любой плагин Finder, вероятно, перестанет работать с 10.6.
  • Automator может сохранять вещи как «плагин Finder». Это более поддерживаемая версия того, что вы обсуждаете, но, конечно, менее гибкая.
1
ответ дан 26 November 2019 в 19:40
поделиться