Комплект сценария и файлы с терминологией сценария
Приложения какао могут предоставить 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 в качестве примера.