Комплект сценария и файлы с терминологией сценария
Приложения какао могут предоставить scriptability информацию в форме комплекта сценария и файлов с терминологией сценария. Этот формат, иногда называемый форматом комплекта сценария, поддерживался начиная с первой версии сценариев Какао. Эта глава обеспечивает подробный взгляд на использование и структуру этих файлов.
При предоставлении сценариев информации в формате комплекта сценария приложение обеспечивает по крайней мере один нелокализованный файл комплекта сценария и соответствующий файл с терминологией сценария. Эти файлы вместе описывают возможности сценариев приложения и терминологии сценарист использование для доступа к тем возможностям.
Файлы комплекта сценария
Файл комплекта сценария описывает scriptable объекты с точки зрения их атрибутов, отношений и поддерживаемых команд. Можно думать о файле комплекта сценария как предоставляющий сценарии информации для использования внутренней поддержкой сценариев Какао; та информация может также использоваться Вашим приложением. Файлы с терминологией сценария описывают файлы, используемые для хранения терминологии сценариев, соответствующей информации в файле комплекта сценария. Та терминология определяет термины, фактически использованные сценаристами для управления приложением.
Информация в файле комплекта сценария состоит из вложенного списка пар ключ/значение. Комплекты сценария всегда являются списками свойств, но кроме того они должны соответствовать формату, описанному в Структуре Файла Комплекта Сценария. Для получения информации о создании их посмотрите Создание Ваших Собственных Файлов Комплекта Сценария.
Платформы, загружаемые пакеты и приложения, поддерживающие сценарии, могут включать файл комплекта сценария как независимый от языка ресурс. Имя файла принимает форму suiteName.scriptSuite, где suiteName однозначно определяет файл комплекта сценария. Пример был бы MyApplication.scriptSuite.
Комплекты сценария расположены в (нелокализованный) Resources каталог приложения, платформы или пакета. Например, для платформы назван MyStuff.framework, файл комплекта сценария (названный MyStuff.scriptSuite) находился бы в MyStuff.framework/Resources/.
Перечисление b-1 показывает описание класса для NSApplication урок, посещаемый от NSCoreSuite.scriptSuite, Файл комплекта сценария какао для комплекта Стандарта AppleScript. Описание класса показано, как экспортируется в “формате” Файла Списка свойств XML Редактором Списка свойств приложение. Можно найти полную версию этого файла комплекта сценария в системе следующим Resources символьная ссылка в /System/Library/Frameworks/Foundation.framework.
Перечисление b-1 класс NSApplication от файла комплекта сценария для Стандартного комплекта
<key>NSApplication</key> |
<dict> |
<key>AppleEventCode</key> |
<string>capp</string> |
<key>Attributes</key> |
<dict> |
<key>isActive</key> |
<dict> |
<key>AppleEventCode</key> |
<string>pisf</string> |
<key>ReadOnly</key> |
<string>YES</string> |
<key>Type</key> |
<string>NSNumber<Bool></string> |
</dict> |
<key>name</key> |
<dict> |
<key>AppleEventCode</key> |
<string>pnam</string> |
<key>ReadOnly</key> |
<string>YES</string> |
<key>Type</key> |
<string>NSString</string> |
</dict> |
<key>version</key> |
<dict> |
<key>AppleEventCode</key> |
<string>vers</string> |
<key>ReadOnly</key> |
<string>YES</string> |
<key>Type</key> |
<string>NSString</string> |
</dict> |
</dict> |
<key>Superclass</key> |
<string>NSCoreSuite.AbstractObject</string> |
<key>SupportedCommands</key> |
<dict> |
<key>NSCoreSuite.Open</key> |
<string>handleOpenScriptCommand:</string> |
<key>NSCoreSuite.Print</key> |
<string>handlePrintScriptCommand:</string> |
<key>NSCoreSuite.Quit</key> |
<string>handleQuitScriptCommand:</string> |
</dict> |
<key>ToManyRelationships</key> |
<dict> |
<key>orderedDocuments</key> |
<dict> |
<key>AppleEventCode</key> |
<string>docu</string> |
<key>LocationRequiredToCreate</key> |
<string>NO</string> |
<key>ReadOnly</key> |
<string>YES</string> |
<key>Type</key> |
<string>NSDocument</string> |
</dict> |
<key>orderedWindows</key> |
<dict> |
<key>AppleEventCode</key> |
<string>cwin</string> |
<key>ReadOnly</key> |
<string>YES</string> |
<key>Type</key> |
<string>NSWindow</string> |
</dict> |
</dict> |
</dict> |
Каждый scriptable класс в файле комплекта сценария должен иметь “описание класса”, которое, в форме значения ключа, объявляет атрибуты и отношения класса с точки зрения типа и четырех кодов символа (или код события Apple). Например, четыре кода символа для NSApplication в Перечислении b-1 строка "capp". Можно читать больше о четырех кодах символов в Кодовых константах, Используемых в информации Scriptability. Первичный ключ для описания класса должен быть именем класса такой как NSApplication это идентифицирует реальный класс Objective C.
Описание класса также объявляет команды AppleScript, класс поддерживает и указывает суперкласс, если суперкласс также поддерживает сценарии своих объектов. В этом случае, суперкласс для NSApplication AbstractObject, который является корнем scriptable иерархии классов и соответствует NSObject класс.
Структура файла комплекта сценария
Файл комплекта сценария является текстовым файлом, содержащим пары ключ/значение в форме ряда вложенных словарей с двумя основными категориями: описания класса и описания команды.
Описание класса описывает атрибуты и отношения scriptable класса. Отношения могут быть непосредственными или one-many. Описание класса также перечисляет команды, которые класс поддерживает и указывает, обрабатывает ли определенный метод класса команду, или реализация по умолчанию команды используется для выполнения команды. Описание класса может определять scriptable суперкласс, и таким образом наследовать атрибуты, отношения и поддерживаемые команды того класса. Описания класса для классов, определенных в файле комплекта сценария приложения, инстанцирует глобальный экземпляр NSScriptSuiteRegistry когда это загружает scriptability информацию приложения.
Описание команды определяет характеристики команды AppleScript, которую в частности поддерживают приложение, платформа или пакет. Эта информация включает класс команды, тип возвращаемого значения, и число и типы параметров. Многие команды, определенные в Стандартном комплекте (такой как copy, duplicate, move, и т.д.), имеют реализации по умолчанию в подклассах NSScriptCommand, перечисленный в Подклассах для Стандарта Команды AppleScript. Описания команды для команд, определенных в файле комплекта сценария приложения, инстанцирует глобальный экземпляр NSScriptSuiteRegistry когда это загружает scriptability информацию приложения. Для получения дополнительной информации о механизме команды сценария посмотрите Команды Сценария.
Файл комплекта сценария может содержать дополнительные объявления, такие как перечисления. Например, NSCoreSuite.scriptSuite содержит объявление для SaveOptions перечисление, определяющее значения AppleScript для yes, no, и ask это используется при закрытии файла.
Следующие таблицы описывают структуру файла комплекта сценария, включая его дополнительные и требуемые ключи.
Ключ | Тип значения или ссылка | Описание |
|---|---|---|
«имя» | Имя комплекта (требуется); имя может быть помещено куда угодно в определении, пока это - элемент первого уровня | |
“ | Четыре кода символа для этого комплекта (требуются) | |
“ | Словарь списка учащихся (Таблица b-2) | дополнительный (никакие классы, определенные по умолчанию) |
“ | Словарь списка команд (Таблица b-7) | дополнительный (никакие классы, определенные по умолчанию) |
“ | Словарь списка синонима (Таблица B-10) | дополнительный (никакие синонимы, определенные по умолчанию) |
“ | Словарь списка перечисления (Таблица B-11) | дополнительный (никакие перечисления, определенные по умолчанию) |
Ключ | Тип значения или ссылка | Описание |
|---|---|---|
“ | Суперкласс Scriptable; должно быть имя класса Objective C. Все атрибуты, отношения и поддерживаемые команды наследованы и могут быть переопределены. Можно использовать нотацию suiteName.className для обозначения класса. (Дополнительный). Можно также использовать | |
“ | Четыре кода символа для этого класса (требуются) | |
“ | Словарь списка свойств (Таблица b-4) | Атрибуты (дополнительного) класса |
“ | Словарь списка свойств (Таблица b-4) | Непосредственные отношения (дополнительного) класса |
“ | Словарь списка свойств (Таблица b-4) | Связи «один ко многим» (дополнительного) класса |
“ | Поддерживаемый словарь команд (Таблица b-6) | Команды, поддерживаемые (дополнительным) классом |
Ключ | Ссылка | Описание |
|---|---|---|
«propertyName» | Словарь свойства (Таблица b-5) | Определение атрибута или отношения. attributeName должен отобразиться на переменную экземпляра класса, для которого существуют методы доступа. |
Ключ | Тип значения | Описание |
|---|---|---|
“ | Имя класса значений этого свойства (требуется) | |
“ | Четыре кода символа для этого комплекта (требуются) | |
“ | «Да» или «Нет» (дополнительный; «Нет» по умолчанию) |
Ключ | Тип значения | Описание |
|---|---|---|
«commandName» | Имя метода этот класс использование для реализации команды или, ““ если реализация по умолчанию достаточна. если команда не находится в том же комплекте как класс, commandName должен быть в suiteName.commandName нотации. |
Ключ | Ссылка | Описание |
|---|---|---|
«commandName» | Словарь команды (Таблица B-12) | Определение команды. |
Ключ | Тип значения или ссылка | Описание |
|---|---|---|
“ | Класс команды. Установите это значение в | |
“ | Четыре кода символа для этой команды (требуются) | |
“ | Константа с четырьмя классами символов для этой команды (дополнительный; по умолчанию, константа для комплекта сценария), | |
“ | Имя класса результата команды или, “” если никакой результат (дополнительный; никакой результат по умолчанию) | |
“ | Четыре кода символа для типа возврата команды. Если значение «Типа» присваивается, должен присутствовать. Если тип возврата является переменным, может быть «****». | |
“ | Словарь списка аргументов (Таблица B-13) | Параметры команды (дополнительный; никакие параметры по умолчанию) |
Ключ | Тип значения или ссылка | Описание |
|---|---|---|
“ | Имя класса для этого параметра (требуется) | |
“ | Четыре кода символа для этого параметра (требуются) | |
“ | «Да» или «Нет» (дополнительный; «Нет» по умолчанию) |
Ключ | Тип значения или ссылка | Описание |
|---|---|---|
“ | Имя класса, для которого четыре кода символа являются синонимом. |
Ключ | Ссылка | Описание |
|---|---|---|
«enumerationName» | Словарь перечисления (Таблица B-12) | Один на перечисление. |
Ключ | Тип значения или ссылка | Описание |
|---|---|---|
“ | Четыре кода символа для этого перечисления (требуются) | |
“ | Перечислители перечисляют словарь (Таблица B-13) | Перечислители в перечислении (требуются) |
Ключ | Тип значения или ссылка | Описание |
|---|---|---|
«enumeratorName» | Код события Apple с четырьмя символами для этого перечислителя (требуется) |
Файлы с терминологией сценария
Файл с терминологией сценария отображает терминологию AppleScript — подобные английскому языку слова и формулирует сценариста, может использовать в сценарии, такой как the first word in the first paragraph— к классу и описаниям команды в файле комплекта сценария. Файл с терминологией сценария также обеспечивает ценную документацию о поддержке сценариев приложения, которую пользователи могут исследовать в приложениях Редактора сценариев и XCode.
Как файл комплекта сценария, файл с терминологией сценария сохранен как вложенный список пар ключ/значение. Терминология сценария всегда является списками свойств, но кроме того они должны соответствовать формату, описанному в Структуре Файла с терминологией Сценария. Посмотрите Создание Ваших Собственных Файлов Комплекта Сценария для получения информации о том, как создать и отредактировать эти файлы.
Перечисление b-2 показывает терминологию для NSApplication урок, посещаемый от NSCoreSuite.scriptTerminology, файл с терминологией сценария для Стандартного комплекта (предоставленный Какао). Терминология показана, как экспортируется в “формате” Файла Списка свойств ASCII Редактором Списка свойств приложение. Можно найти полную версию этого файла в системе следующим Resources символьная ссылка в /System/Library/Frameworks/Foundation.framework.
Перечисление b-2 класс NSApplication от файла с терминологией сценария для Стандартного комплекта
NSApplication = { |
Attributes = { |
isActive = { |
Description = "Is this the frontmost (active) application?"; |
Name = frontmost; |
}; |
name = {Description = "The name of the application."; Name = name; }; |
version = {Description = "The version of the application."; Name = version; }; |
}; |
Description = "An application's top level scripting object."; |
Name = application; |
PluralName = applications; |
}; |
NSColor = {Description = "A color."; Name = color; PluralName = colors; }; |
NSDocument = { |
Attributes = { |
fileName = {Description = "The document's path."; Name = path; }; |
isDocumentEdited = { |
Description = "Has the document been modified since the last save?"; |
Name = modified; |
}; |
lastComponentOfFileName = {Description = "The document's name."; Name = name; }; |
}; |
Description = "A document."; |
Name = document; |
PluralName = documents; |
}; |
Структура файла с терминологией сценария
Терминология сценария, как файлы комплекта сценария, сохранена как текстовые файлы пар ключ/значение. Как с файлом комплекта сценария, файл с терминологией сценария состоит из ряда вложенных словарей. Многие подсловари (класс, команда, параметр, и т.д.) должны иметь дубликаты в файле комплекта сценария.
Следующие таблицы описывают дополнительные и требуемые ключи для файла с терминологией сценария.
Ключ | Тип значения или ссылка | Описание |
|---|---|---|
“ | Человекочитаемое имя комплекта (требуется); имя может быть помещено куда угодно в определении, пока это - элемент первого уровня | |
“ | Человекочитаемое описание комплекта (дополнительный; но настоятельно рекомендованный) | |
“ | Словарь терминологии списка учащихся (Таблица B-15) | Требуемый, только если существует соответствующее определение в файле комплекта сценария |
“ | Словарь терминологии списка команд (Таблица B-19) | Требуемый, только если существует соответствующее определение в файле комплекта сценария |
“ | Синоним класса перечисляет словарь терминологии (Таблица B-23) | Требуемый, только если существует соответствующее определение в файле комплекта сценария |
“ | Словарь терминологии перечисления (Таблица B-25 | Требуемый, только если существует соответствующее определение в файле комплекта сценария |
Ключ | Ссылка | Описание |
|---|---|---|
«имя класса» | Словарь терминологии класса (Таблица B-16) | Один на каждый scriptable класс. Должно быть имя класса Objective C. |
Ключ | Тип значения или ссылка | Описание |
|---|---|---|
“ | Человекочитаемое имя класса (требуется) | |
“ | Человекочитаемое описание класса (дополнительный; но настоятельно рекомендованный) | |
“ | Человекочитаемое имя для формы множественного числа класса (требуется) | |
“ | Словарь терминологии списка атрибутов (Таблица B-17) | Атрибуты класса (потребовал, только если существует соответствующее определение в файле комплекта сценария), |
Ключ | Ссылка | Описание |
|---|---|---|
«attributeName» | Словарь терминологии атрибута (Таблица B-18) | Описание атрибута класса |
Ключ | Ссылка | Описание |
|---|---|---|
«commandName» | Словарь терминологии команды (Таблица B-20) | Один на каждую поддерживаемую команду сценария. |
Ключ | Ссылка | Описание |
|---|---|---|
«argumentName» | Словарь терминологии параметра (Таблица B-22) | Описания аргументов команды. |
Ключ | Ссылка | Описание |
|---|---|---|
“ | Словарь терминологии синонима класса (Таблица B-24) | Описания постоянных синонимов для класса |
Ключ | Тип значения или ссылка | Описание |
|---|---|---|
“ | Человекочитаемое имя класса (требуется) | |
“ | Человекочитаемое описание (дополнительного) класса | |
“ | Человекочитаемое имя формы множественного числа класса (требуется) |
Ключ | Ссылка | Описание |
|---|---|---|
«enumerationName» | Перечислители перечисляют словарь терминологии (Таблица B-26) | Один на перечисление (требуется). |
Ключ | Тип значения или ссылка | Описание |
|---|---|---|
«enumeratorName» | Словарь терминологии перечислителя (Таблица B-27) | Один на перечислитель (требуется). |
Встроенные комплекты сценария сценариев какао
Сценарии какао обеспечивают два комплекта стандартной информации о сценариях: Стандарт (или Ядро) комплект и текстовый комплект. Эти комплекты определяют scriptability информацию для основных команд AppleScript, включая copy, count, create, delete, exists, и move. Они также предоставляют информацию для основных классов AppleScript, такой как application, document, window, и text, и для соответствующих классов Какао, такой как NSApplication, NSDocument, NSWindow, и NSTextStorage.
Стандарт и текстовые комплекты представлены во Встроенной Поддержке Стандарта и текстовых Комплектов и описаны более подробно в Использовании Архитектура Документа и Получают доступ к текстовому Комплекту.
Создание собственных файлов комплекта сценария
Для добавления к встроенной поддержке сценариев Какао с помощью комплекта сценария и подхода терминологии сценария приложение предоставляет файлы, описывающие scriptability информацию для объектов, свойств и команд, которые это поддерживает. Например, приложение, которое может нарисовать формы (такие как приложение Эскиза) могло бы указать, что поддерживает circle, rectangle, и line объекты, с color и location свойства. Это могло бы также поддерживать команды такой как rotate и scale, в дополнение к стандартным командам такой как get, set, и delete.
Для создания файла комплекта сценария или файла с терминологией сценария можно или использовать простой текст или XML-редактор, или использовать приложение, такое как Редактор Списка свойств, предоставляющий встроенную поддержку для создания списков свойств. Редактор Списка свойств включен с инструментами разработчика OS X. Если у Вас есть существующая scriptability информация, посмотрите Преобразование и Обновление информация о Scriptability для получения информации о том, как преобразовать между различными форматами.
Вы создаете файлы, содержащие записи для классов, команды и перечисления, используемые Вашим приложением, включая коды, метод и информацию о классе, используемую Какао и терминологией, используемой сценаристами. Ваши файлы должны следовать за форматами, описанными в Структуре Файла Комплекта Сценария и Структуре Файла с терминологией Сценария. При использовании Редактора Списка свойств приложение можно гарантировать создание допустимого списка свойств. Можно также сохранить scriptability информацию в нескольких форматах:
Как файл комплекта сценария или файл с терминологией сценария: эти файлы хранятся в формате XML.
Как текстовый файл с XML-тэгами: для примера см. Перечисление b-1.
Как текстовый файл в плоскости формат ASCII: для примера см. Перечисление b-2.
Эти форматы могут быть открыты различными текстовыми редакторами или Редактором Списка свойств. В результате можно свободно работать с файлом комплекта сценария в том, какой бы ни формат является самым удобным для Вас.
Рисунок b-1 показывает Стандартный комплект (от файла NSCoreSuite.scriptSuite) как выведено на экран в Редакторе Списка свойств приложение. В этом числе, Классах и NSApplication определение класса расширено так, чтобы атрибуты, поддерживаемые команды и отношения для NSApplication видимы.
AbstractObject класс указывает базовый класс, который Ваши scriptable классы могут наследовать от того, когда их фактический суперкласс не имеет никакой поддержки scriptability.

Для примеров комплектов сценария и примера кода для scriptable приложений, см. проекты Эскиза и TextEdit в качестве примера.