Как получить доступ / встроить функциональность Finder? - PullRequest
1 голос
/ 08 октября 2009

Возможно ли встроить функциональность Finder в приложение какао, теперь, когда Finder сам по себе является какао (при условии, что приложение функционировало только в снежном барсе)?

То, что я имею в виду, это наличие панели обозревателя файлов в качестве части приложения, фактически просмотр самой файловой системы (для редактирования в другой панели), но без написания всех функций Finder. Спасибо!

Ответы [ 2 ]

5 голосов
/ 02 января 2010

Сам Finder - это просто приложение. Это не библиотека компонентов и не фреймворк. Хотя вы не можете «встраивать» функции Finder в свое приложение, вы можете влиять на функции Finder и вызывать функции Finder.

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

Во-вторых, поскольку Finder поддерживает AppleEvents, вы можете воздействовать на Finder с помощью AppleScript. Взгляните на My First AppleScript и My First AppleScript Part II , чтобы узнать, как это сделать. Вот гораздо более подробная информация в Обзор AppleScript: сценарии с AppleScript . Вот некоторые Больше скриптов Finder .

В-третьих, существует также поддержка разработки способов, с помощью которых Finder может выполнять сложные действия для пользователя одним нажатием кнопки с помощью Automator (Mac OS X 10.5). Вы также можете создать Сервис в Automator, начиная с Mac OS X 10.6 («Снежный барс»). Взгляните на Действия Automator и Finder в Mac OS X 10.6 для ознакомления с этой последней техникой.

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

Это не должно быть огромной работой, если вы не настраиваете свои сайты на подражание искателю или дублирование всей его функциональности, только основные основы, которые я упомянул.

Однако вам нужно знать, как программировать Macintosh, а не просто использовать AppleScript. Обычный способ сделать это - изучить язык программирования Objective-C и инфраструктуру Cocoa. Вам необходимо ознакомиться с написанием приложений с использованием архитектуры Model-View-Controller.

Вы бы создали подкласс NSObject с именем что-то вроде MyFile и подкласс класса коллекции с именем что-то вроде MyFolder. Когда приложение создает Windows для просмотра и каждый раз, когда приложение активируется (становится самым передним приложением), вы8 обновите содержимое меню просмотра.

Вы можете разместить меню в строке меню с командами: Открыть, Печать, Удалить, Дублировать. Когда пользователь выполняет одну из этих команд, ваше приложение выполняет соответствующие действия самостоятельно или отправляет запрос в Finder. После того как действие полностью выполнено, вы обновляете окно просмотра для текущей отображаемой папки или вновь отображаемой папки, если пользователь перешел к другой папке.

Если вы знакомы с шаблонами проектирования, объектно-ориентированным программированием и фреймворками в целом - чтение Шаблонов проектирования Какао значительно ускорит процесс обучения.

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

Пользователь всегда может щелкнуть окно папки Finder одним нажатием кнопки, поскольку Finder всегда работает. Поэтому избегайте простого дублирования этой функциональности ради самого себя. Сосредоточьтесь на выгоде, которую вы предоставляете пользователю. Убедитесь, что вы обрабатываете ситуации, когда пользователь обновляет папку, содержимое которой вы показываете, из другого приложения, а затем переключается обратно на ваше приложение.

0 голосов
/ 08 октября 2009

Нет, они не сделали Finder просто хостом для фреймворка, например Preview. Вы все еще должны написать это сами.

...