Комплект сценария и файлы с терминологией сценария

Приложения какао могут предоставить 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&lt;Bool&gt;</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-1  словарь Комплекта

Ключ

Тип значения или ссылка

Описание

«имя»

NSString

Имя комплекта (требуется); имя может быть помещено куда угодно в определении, пока это - элемент первого уровня

AppleEventCode

NSString

Четыре кода символа для этого комплекта (требуются)

Classes

Словарь списка учащихся (Таблица b-2)

дополнительный (никакие классы, определенные по умолчанию)

Commands

Словарь списка команд (Таблица b-7)

дополнительный (никакие классы, определенные по умолчанию)

Synonyms

Словарь списка синонима (Таблица B-10)

дополнительный (никакие синонимы, определенные по умолчанию)

Enumerations

Словарь списка перечисления (Таблица B-11)

дополнительный (никакие перечисления, определенные по умолчанию)

Табличный b-2  словарь Списка учащихся

Ключ

Ссылка

Описание

«имя класса»

Словарь класса (Таблица b-3)

Один на каждый scriptable класс. Должно быть имя класса Objective C, определенного Какао или приложением.

Табличный b-3  словарь Класса

Ключ

Тип значения или ссылка

Описание

Superclass

NSString

Суперкласс Scriptable; должно быть имя класса Objective C. Все атрибуты, отношения и поддерживаемые команды наследованы и могут быть переопределены. Можно использовать нотацию suiteName.className для обозначения класса. (Дополнительный). Можно также использовать AbstractObject класс для указания базового класса, который scriptable классы могут наследовать от этого, содержит не scriptability собственный.

AppleEventCode

NSString

Четыре кода символа для этого класса (требуются)

Attributes

Словарь списка свойств (Таблица b-4)

Атрибуты (дополнительного) класса

ToOneRelationships

Словарь списка свойств (Таблица b-4)

Непосредственные отношения (дополнительного) класса

ToManyRelationships

Словарь списка свойств (Таблица b-4)

Связи «один ко многим» (дополнительного) класса

SupportedCommands

Поддерживаемый словарь команд (Таблица b-6)

Команды, поддерживаемые (дополнительным) классом

Табличный b-4  словарь Списка свойств

Ключ

Ссылка

Описание

«propertyName»

Словарь свойства (Таблица b-5)

Определение атрибута или отношения. attributeName должен отобразиться на переменную экземпляра класса, для которого существуют методы доступа.

Табличный b-5  словарь Свойства

Ключ

Тип значения

Описание

Type

NSString

Имя класса значений этого свойства (требуется)

AppleEventCode

NSString

Четыре кода символа для этого комплекта (требуются)

ReadOnly

NSString

«Да» или «Нет» (дополнительный; «Нет» по умолчанию)

Таблица b-6  Поддерживаемый словарь команд

Ключ

Тип значения

Описание

«commandName»

NSString

Имя метода этот класс использование для реализации команды или, ““ если реализация по умолчанию достаточна. если команда не находится в том же комплекте как класс, commandName должен быть в suiteName.commandName нотации.

Табличный b-7  словарь Списка команд

Ключ

Ссылка

Описание

«commandName»

Словарь команды (Таблица B-12)

Определение команды.

Табличный b-8  словарь Команды

Ключ

Тип значения или ссылка

Описание

CommandClass

NSString

Класс команды. Установите это значение в NSScriptCommand для поведения по умолчанию. Не используя значение по умолчанию, должен быть установлен в подкласс NSScriptCommand (требуемый).

AppleEventCode

NSString

Четыре кода символа для этой команды (требуются)

AppleEventClassCode

NSString

Константа с четырьмя классами символов для этой команды (дополнительный; по умолчанию, константа для комплекта сценария),

Type

NSString

Имя класса результата команды или, “” если никакой результат (дополнительный; никакой результат по умолчанию)

ResultAppleEventCode

NSString

Четыре кода символа для типа возврата команды. Если значение «Типа» присваивается, должен присутствовать. Если тип возврата является переменным, может быть «****».

Arguments

Словарь списка аргументов (Таблица B-13)

Параметры команды (дополнительный; никакие параметры по умолчанию)

Табличный b-9  словарь Списка аргументов

Ключ

Тип значения или ссылка

Описание

Type

NSString

Имя класса для этого параметра (требуется)

AppleEventCode

NSString

Четыре кода символа для этого параметра (требуются)

Optional

NSString

«Да» или «Нет» (дополнительный; «Нет» по умолчанию)

Табличный B-10  Синоним перечисляет словарь

Ключ

Тип значения или ссылка

Описание

Apple event code

NSString

Имя класса, для которого четыре кода символа являются синонимом.

Табличное B-11  Перечисление перечисляет словарь

Ключ

Ссылка

Описание

«enumerationName»

Словарь перечисления (Таблица B-12)

Один на перечисление.

Табличный B-12  словарь Перечисления

Ключ

Тип значения или ссылка

Описание

AppleEventCode

NSString

Четыре кода символа для этого перечисления (требуются)

Enumerators

Перечислители перечисляют словарь (Таблица B-13)

Перечислители в перечислении (требуются)

Табличный B-13  словарь Перечислителей

Ключ

Тип значения или ссылка

Описание

«enumeratorName»

NSString

Код события 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-14  словарь Терминологии

Ключ

Тип значения или ссылка

Описание

Name

NSString или NSArray из NSString объекты

Человекочитаемое имя комплекта (требуется); имя может быть помещено куда угодно в определении, пока это - элемент первого уровня

Description

NSString

Человекочитаемое описание комплекта (дополнительный; но настоятельно рекомендованный)

Classes

Словарь терминологии списка учащихся (Таблица B-15)

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

Commands

Словарь терминологии списка команд (Таблица B-19)

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

Synonyms

Синоним класса перечисляет словарь терминологии (Таблица B-23)

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

Enumerations

Словарь терминологии перечисления (Таблица B-25

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

Табличный B-15  словарь терминологии Списка учащихся

Ключ

Ссылка

Описание

«имя класса»

Словарь терминологии класса (Таблица B-16)

Один на каждый scriptable класс. Должно быть имя класса Objective C.

Табличный B-16  словарь терминологии Класса

Ключ

Тип значения или ссылка

Описание

Name

NSString или NSArray из NSString объекты

Человекочитаемое имя класса (требуется)

Description

NSString

Человекочитаемое описание класса (дополнительный; но настоятельно рекомендованный)

PluralName

NSString

Человекочитаемое имя для формы множественного числа класса (требуется)

Attributes

Словарь терминологии списка атрибутов (Таблица B-17)

Атрибуты класса (потребовал, только если существует соответствующее определение в файле комплекта сценария),

Табличный B-17  словарь терминологии Списка атрибутов

Ключ

Ссылка

Описание

«attributeName»

Словарь терминологии атрибута (Таблица B-18)

Описание атрибута класса

Табличный B-18  словарь терминологии Атрибута

Ключ

Тип значения или ссылка

Описание

Name

NSString или NSArray из NSString объекты

Человекочитаемое имя атрибута (требуется).

Description

NSString

Человекочитаемое описание атрибута (дополнительный, но настоятельно рекомендованный)

Number

NSString или NSArray из NSString объекты

«множественный» или «исключительный» (значение по умолчанию).

Табличный B-19  словарь терминологии Списка команд

Ключ

Ссылка

Описание

«commandName»

Словарь терминологии команды (Таблица B-20)

Один на каждую поддерживаемую команду сценария.

Табличный B-20  словарь терминологии Команды

Ключ

Тип значения или ссылка

Описание

Name

NSString или NSArray из NSString объекты

Человекочитаемое имя команды (требуется)

Description

NSString

Человекочитаемое описание команды (дополнительный; но настоятельно рекомендованный)

Arguments

Словарь терминологии списка аргументов (Таблица B-21)

Описание аргументов команды (потребовал, только если существует определение),

Табличный B-21  словарь терминологии Списка аргументов

Ключ

Ссылка

Описание

«argumentName»

Словарь терминологии параметра (Таблица B-22)

Описания аргументов команды.

Табличный B-22  словарь терминологии Параметра

Ключ

Тип значения или ссылка

Описание

Name

NSString или NSArray из NSString объекты

Человекочитаемое имя параметра (требуется)

Description

NSString

Человекочитаемое описание параметра (дополнительный, но настоятельно рекомендованный)

Sex

NSString или NSArray из NSString объекты

«мужской», «женский», «ни один» (значение по умолчанию)

Number

NSString или NSArray из NSString объекты

«множественный» или «исключительный» (значение по умолчанию)

Табличный B-23  синоним Класса перечисляет словарь терминологии

Ключ

Ссылка

Описание

Apple event code

Словарь терминологии синонима класса (Таблица B-24)

Описания постоянных синонимов для класса

Табличный B-24  словарь терминологии синонима Класса

Ключ

Тип значения или ссылка

Описание

Name

NSString или NSArray из NSString объекты

Человекочитаемое имя класса (требуется)

Description

NSString

Человекочитаемое описание (дополнительного) класса

PluralName

NSString

Человекочитаемое имя формы множественного числа класса (требуется)

Табличное B-25  Перечисление перечисляет словарь терминологии

Ключ

Ссылка

Описание

«enumerationName»

Перечислители перечисляют словарь терминологии (Таблица B-26)

Один на перечисление (требуется).

Табличные B-26  Перечислители перечисляют словарь терминологии

Ключ

Тип значения или ссылка

Описание

«enumeratorName»

Словарь терминологии перечислителя (Таблица B-27)

Один на перечислитель (требуется).

Табличный B-27  словарь терминологии Перечислителя

Ключ

Тип значения или ссылка

Описание

Description

NSString

Человекочитаемое описание (дополнительного) перечислителя

Name

NSString

Человекочитаемое имя перечислителя (требуется)

Встроенные комплекты сценария сценариев какао

Сценарии какао обеспечивают два комплекта стандартной информации о сценариях: Стандарт (или Ядро) комплект и текстовый комплект. Эти комплекты определяют 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 информацию в нескольких форматах:

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

Рисунок b-1 показывает Стандартный комплект (от файла NSCoreSuite.scriptSuite) как выведено на экран в Редакторе Списка свойств приложение. В этом числе, Классах и NSApplication определение класса расширено так, чтобы атрибуты, поддерживаемые команды и отношения для NSApplication видимы.

AbstractObject класс указывает базовый класс, который Ваши scriptable классы могут наследовать от того, когда их фактический суперкласс не имеет никакой поддержки scriptability.

  Комплект Сценария рисунка b-1 для Стандартного комплекта в Редакторе Списка свойств
Script suite for the Cocoa Core suite in Property List Editor

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