Приложения Scriptable

scriptable приложение является тем, идущим вне основ ответа на события Apple, отправленные Mac OS для предоставления доступа к его больше всего важным данным и операциям доступными для сценариев AppleScript или для других приложений. Чтобы сделать это, приложение должно предоставить и терминологию сценаристам для использования и базовый код события Apple для поддержки его. И приложения Углерода и Какао могут быть scriptable, и платформа Какао содержит встроенную поддержку, минимизирующую объем кода, который необходимо записать.

Указание терминологии сценариев

Приложения Scriptable описывают терминологию сценариев, которую они поддерживают путем предоставления словаря сценариев. Словарь указывает команды и возражает поддержке приложений, а также другой информации, использующейся AppleScript или самим приложением, и возможно другими приложениями или сценариями, хотящими использовать в своих интересах scriptability приложения. Для получения информации о разработке терминологии сценариев посмотрите Техническое примечание TN2106, Пишущий сценарий Интерфейсных Инструкций.

Пользователи обычно исследуют словарь на информацию о том, как управлять приложением в их сценариях. Можно вывести на экран словарь для scriptable приложения или дополнения сценариев с Редактором сценариев, как описано в Отображении Словарей Сценариев.

В настоящее время существует три формата словаря:

Определение, что сделать Scriptable

В разработке scriptable приложения это - хорошая идея обеспечить доступ ко всем основным функциям приложения, хотя это может быть целесообразно запускаться только с ключевого подмножества. Вы обычно не делаете пользовательский интерфейс своего приложения непосредственно scriptable. Хороший проект позволяет пользователям писать сценарий объектов модели Вашего приложения (которые представляют данные и основные способы поведения), а не его пользовательский интерфейс (который представляет информацию пользователю).

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

Дополнительные сведения см. в “Изучении, Как Подать Заявку Scriptable” в Начале работы с AppleScript и Техническим примечанием TN2106, Пишущий сценарий Интерфейсных Инструкций.

Для получения информации о том, как поддерживать печать в scriptable приложении, посмотрите Улучшенную Печать Событие Apple.

Регистрация для получения событий Apple

scriptable приложение обычно реагирует на ряд общих команд, такой как get data, set data, delete, и save, а также к другим командам, что операции поддержки, определенные для приложения. Команды представлены в событиях Apple константами, определенными в заголовках приложения или платформе. Для поддержки команды приложение регистрирует подпрограмму обработчика событий в менеджере по корпоративным мероприятиям Apple для обработки событий Apple, которые оно получает, которые указывают ту команду. Менеджер по корпоративным мероприятиям Apple диспетчеризирует полученные события обработчикам, зарегистрированным для них.

Для получения дополнительной информации о создании и регистрации обработчиков событий, посмотрите, что Событие Apple Диспетчеризирует и Отвечает на События Apple в Руководстве по программированию Событий Apple.

Разрешение объектов в приложении

События Apple часто указывают элементы в приложении. Например, a get data событие могло бы попросить текст абзаца в открытом документе. Отличный элемент в приложении, которое может быть указано в событии Apple, известен как объект-событие Apple. (Термин объект не подразумевает, что элементы должны быть представлены внутренне как объекты на языке объектно-ориентированного программирования.) Все такие объекты считаются содержавшимися в других объектах с самим приложением, служащим окончательным контейнером. Для данного приложения объектная модель AppleScript (также названный моделью объекта-события Apple) указывает классы объектов, с которыми может работать сценарист в сценариях, доступных свойствах тех объектов, и наследовании и отношениях включения для тех объектов.

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

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

Для примера объектной модели AppleScript см. Обзор Поддержки Какао Приложений Scriptable; дополнительные сведения, на как объекты решения приложений Какао см. в Объектных Спецификаторах; оба находятся в Руководстве по созданию сценариев Какао.

Запись

Записываемое приложение является тем, отправляющим события Apple в себя, когда пользователь выполняет действия с приложением. Если пользователь включил запись в приложении Редактора сценариев (со Сценарием> Запись), действия, генерирующие события Apple, зарегистрированы в сценарий AppleScript.

Приложения, обычно поддерживающие запись:

Приложение Средства поиска в OS X является записываемым. Запускаясь в версии 10.5 OS X, приложение Automator имеет отдельный Рекордный механизм, позволяющий пользователям записать действия в поток операций Automator.

Создание и отправка событий Apple

Приложение может создать и отправить события Apple непосредственно. Это обычно делается или чтобы отправить внутренние события Apple, как описано в Записи, получить службы из scriptable приложения или связаться непосредственно с другим приложением. Открыть Scripting Architecture обеспечивает различные механизмы для создания и отправки событий Apple.

Запускаясь в версии 10.5 OS X, приложения могут использовать Мост Сценариев для получения служб из scriptable приложений. Сценарии Моста позволяют Вам работать эффективно в высокоуровневом языке (Objective C), не имея необходимость обрабатывать подробные данные отправки и получения событий Apple. (См. также Поддержку Приложений Какао для соответствующей информации.)

Когда действительно необходимо будет отправить событие Apple непосредственно, посмотрите Создание События Apple и Создание и Отправку Событий Apple в Руководстве по программированию Событий Apple.

Выполнение сценариев

Для выполнения сценариев приложение устанавливает соединение с компонентом сценариев AppleScript. Это может тогда:

Приложение может сохранить и выполнить сценарии независимо от того, scriptable ли это или записываемо. Если приложение scriptable, однако, оно может выполнить сценарии, управляющие его собственным поведением, таким образом действуя и как клиентское приложение и как серверное приложение для соответствующих событий Apple. Для получения дополнительной информации посмотрите, Открывают Scripting Architecture Reference.

В какао, NSAppleScript класс, описанный в Ссылке класса NSAppleScript, обеспечивает высокоуровневую обертку для выполнения сценариев AppleScript из приложений. Для получения дополнительной информации посмотрите Поддержку Приложений Какао.

Сводка операций в приложении Scriptable

Следующий список подводит итог, как scriptable приложения взаимодействуют с Открыть Scripting Architecture для предоставления доступа к их функциям доступными для сценаристов.

Поддержка OS X создания приложений Scriptable

OS X предоставляет много ресурсов, которые приложения могут использовать, чтобы работать с событиями Apple и поддерживать scriptability, включая API, предоставленный в следующих платформах:

Поддержка приложений углерода

Приложения углерода традиционно работали непосредственно с менеджером по корпоративным мероприятиям Apple для создания, отправляют, получают и интерпретируют события Apple. Эти темы описаны подробно в Руководстве по программированию Событий Apple.

Для получения информации о подавании Вашей scriptable заявки Углерода посмотрите предыдущие разделы в этой главе, а также пути изучения в Начале работы с AppleScript.

Приложения углерода могут использовать функции такой как OSACompile и OSAExecute от OpenScripting.framework скомпилировать и выполнить сценарии. Следует иметь в виду, однако, что при выполнении сценария просто для отправки простой команды в другое приложение, более эффективно создать и отправить событие Apple непосредственно.

Если цель для выполнения сценария состоит в том, чтобы только выполнить a do shell script команда, приложения Углерода могут сделать так более эффективно использование одного из вызовов BSD system(3), popen(3), или exec(3), о котором можно читать в их соответствующих страницах справочника.

Поддержка приложений какао

Платформы Набора Основы и Приложения предоставляют приложениям Какао автоматизированную обработку для определенных событий Apple. Это включает события, которые могут быть отправлены Mac OS, такой как open application, open documents, print documents, и quit События Apple.

Кроме того, Какао предоставляет существенную поддержку для того, чтобы создать scriptable приложения. Для использования в своих интересах его приложения предоставляют scriptability информацию в одном из форматов, описанных в Указании Терминологии Сценариев. Они также создают KVC-совместимые средства доступа для scriptable свойств в их scriptable классах. (Кодирование значения ключа или KVC, описано в Значении ключа, Кодирующем Руководство по программированию.), Хотя создавание полностью scriptable приложения является нетривиальной задачей, приложение может поддерживать много стандартных команд AppleScript, таких как те для получения и установки свойств объектов приложения, с относительно небольшое количество дополнительных шагов.

Приложения какао могут также использовать любой Открыть Scripting Architecture APIs, доступный приложениям Углерода, и фактически, ссылки Какао с платформой Углерода. Например, Приложение Какао могло бы вызвать функцию менеджера по корпоративным мероприятиям Apple для отправки событие Apple непосредственно (в настоящее время нет никакого Какао API, чтобы сделать это).

Запускаясь в версии 10.5 OS X, технология Моста Сценариев обеспечивает эффективный путь к приложениям Какао для взаимодействия с scriptable приложениями на высоком уровне — т.е. не имея необходимость создавать или анализировать отдельные события Apple.

Какао обеспечивает NSAppleScript класс для задач, таких как компиляция и выполнение сценариев. Это дает приложениям другой механизм, чтобы управлять scriptable приложениями и использовать в своих интересах услуги, которые они предоставляют. Однако Вы не должны использовать NSAppleScript выполнить сценарий просто для приведения к отправке события Apple, потому что это намного более дорого, чем использование Моста Сценариев или создание и отправка события Apple непосредственно. И если цель для выполнения сценария состоит в том, чтобы выполнить a do shell script команда, приложения Какао могут выполнить команды оболочки более эффективно с помощью NSTask.

Платформа Какао также включает классы такой как NSAppleEventDescriptor, для работы с базовыми структурами данных о событии Apple, и NSAppleEventManager, для доступа к определенным функциям менеджера по корпоративным мероприятиям Apple.

Поддержка какао обработки событий Apple и создавания scriptable приложений документируется в Руководство по созданию сценариев Какао. Для соответствующей информации см. “Платформу и Поддержку Языка” в приблизительно Событиях Apple в Руководстве по программированию Событий Apple. Для вводного примера кода посмотрите SimpleScripting, SimpleScriptingProperties, SimpleScriptingObjects и SimpleScriptingVerbs. Для более сложного примера посмотрите пример приложения Эскиза.