Как получить доступ/встроить функциональность Finder?

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

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


person Community    schedule 08.10.2009    source источник


Ответы (2)


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

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

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

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

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

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

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

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

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

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

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

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

person JohnnySoftware    schedule 02.01.2010

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

person Peter Hosey    schedule 08.10.2009
comment
Хорошо бы начать с примера кода SourceView: developer.apple.com/mac /library/samplecode/SourceView - person Rob Keniger; 10.10.2009