Классы сценариев какао и категории

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

Приблизительно тридцать общедоступных классов в поддержке платформы Основы Какао базовая структура сценариев Какао. Несколько методов в платформе Набора Приложения добавляют scriptability опции для приложений, окон, документов и текстовых объектов. Вместе, это предоставляет поддержку для команд AppleScript, перечисленных в сводке Поддержки Команды AppleScript (такой как get, set, move, delete, и т.д.).

Во многих случаях сценарии Какао создают и управляют экземплярами этих классов, таких, что Ваше приложение должно только ответить, когда вызывается метод определенного объекта приложения. Т.е. Ваше приложение редко должно объявлять или инстанцировать любого из основных классов сценариев Какао.

С другой стороны, некоторые приложения должны будут определить подклассы один или больше классов команды сценариев Какао для оказания поддержки для операций, определенных для приложения. Даже в тех случаях, однако, приложение не ответственно за создание экземпляров команд — сценарии Какао делают это, на основе scriptability информации, предоставленной в sdef файле приложения. Процесс работы с командами описан подробно в Командах Сценария.

Существует один случай, где Ваше приложение обычно создает экземпляры классов сценариев Какао. В объектных методах спецификатора для Ваших scriptable классов Вы создадите экземпляры объектных классов спецификатора, перечисленных в Таблице 9-2.

Команды сценария и информация Scriptability

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

Табличная 9-1  информация о Сценариях и классы команды

Класс

Описание

NSScriptSuiteRegistry

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

NSClassDescription

Абстрактный класс, обеспечивающий интерфейс для запросов свойств класса. Инстанцированный глобальным экземпляром NSScriptSuiteRegistry когда это загружает scriptability информацию приложения.

NSScriptClassDescription

Подкласс NSClassDescription это представляет описание scriptable класса в комплекте сценария. Обеспечивает методы для получения атрибутов, отношений, поддерживал команды и соответствующую информацию для scriptable класса. Инстанцированный глобальным экземпляром NSScriptSuiteRegistry когда это загружает scriptability информацию приложения.

NSScriptCommandDescription

Подкласс NSObject это представляет определение команды, поддерживаемой комплектом. Обеспечивает методы для получения класса команды и возврата и типов аргумента для класса команды сценария. Инстанцированный глобальным экземпляром NSScriptSuiteRegistry когда это загружает scriptability информацию приложения.

NSScriptCommand

Инкапсулирует команду AppleScript, отправленную в приложение как событие Apple. Использует его методы, чтобы оценить ссылки на объект (получатели и параметры) и выполнить команду. Подклассы сценариев какао для основных команд AppleScript описаны в Таблице 9-4. Можно создать собственные подклассы для обработки операций, определенных для приложения. Для получения дополнительной информации посмотрите Объект сначала По сравнению с Глаголом первые Команды Сценария.

NSScriptExecutionContext

Представляет контекст, в котором команда AppleScript выполняется и отслеживает глобальное состояние, связанное с той командой. Вы не должны разделять этот класс на подклассы.

Объектные спецификаторы, логические тесты и связанные категории

NSScriptObjectSpecifier, абстрактный класс. Экземпляры этих классов — объектные спецификаторы — знают, как оценить себя в контексте спецификатора контейнерного объекта. Некоторые из этих классов представляют относительные или логические тесты, выполняемые с объектными спецификаторами (особенно NSWhoseSpecifier объекты).

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

Табличные 9-2  спецификаторы Объекта и связанные классы

Класс или категория

Описание

NSScriptObjectSpecifier

Абстрактный родительский класс для подклассов, представляющих ссылки AppleScript. Объектный спецификатор знает, как оценить себя (к фактическим объектам) в контексте контейнерного спецификатора.

NSIndexSpecifier

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

NSMiddleSpecifier

Подкласс NSScriptObjectSpecifier для объектных спецификаторов, указывающих средний объект в наборе.

NSNameSpecifier

Подкласс NSScriptObjectSpecifier для объектных спецификаторов, указывающих объект в наборе по имени.

NSPositionalSpecifier

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

NSPropertySpecifier

Подкласс NSScriptObjectSpecifier для объектных спецификаторов, представляющих атрибут или отношение объекта.

NSRandomSpecifier

Подкласс NSScriptObjectSpecifier для объектных спецификаторов, указывающих произвольный объект в наборе.

NSRangeSpecifier

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

NSRelativeSpecifier

Подкласс NSScriptObjectSpecifier для объектных спецификаторов, указывающих позицию объекта в связи с другим объектом.

NSUniqueIDSpecifier

Подкласс NSScriptObjectSpecifier для объектных спецификаторов, указывающих объект в наборе уникальным идентификатором.

NSWhoseSpecifier

Подкласс NSScriptObjectSpecifier для объектных спецификаторов, указывающих объект в наборе, соответствующем указанное условие, определенное булевым выражением.

NSScriptObjectSpecifiers

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

NSLogicalTest

Подкласс NSScriptWhoseTest для объектов, представляющих Логические операции AND, OR, и NOT; используемый с одним или более экземплярами NSSpecifierTest.

NSSpecifierTest

Подкласс NSScriptWhoseTest для объектов, представляющих сравнение между двумя объектами (который может быть ссылками на объект прежде чем быть оцененным), использование данного метода сравнения.

NSScriptWhoseTest

Абстрактный класс для объектов, представляющих булевы выражения (спецификаторы), включающие объектные спецификаторы (также вызванный whose пункты, как в every word whose color is blue).

NSComparisonMethods

Категория на NSObject это определяет ряд методов сравнения по умолчанию, полезных для сравнений в NSSpecifierTest.

NSScriptingComparisonMethods

Категория на NSObject это определяет ряд дополнительных методов сравнения, которые Вы, возможно, должны реализовать для сравнений в случаях, где корректный способ сравнить два объекта для сценариев отличается от корректного способа сравнить объекты иначе.

Кодирование значения ключа и приведение значения

Следующее выполняет существенные функции, связанные со сценариями. Для получения информации об использовании этих классов посмотрите, что Значение ключа Кодирует и Сценарии Какао и Приведение.

  Утилиты Table 9-3 Scripting

Класс или категория

Описание

NSScriptCoercionHandler

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

NSScriptKeyValueCoding

Категория на NSObject это определяет дополнения к реализации кодирования значения ключа, связанного со сценариями, такие как получение и установка значений ключа индексом в наборах и принуждении (или преобразование) значение ключа.

Подклассы для стандарта команды AppleScript

Следующие классы реализуют стандартные команды AppleScript. Они - все подклассы NSScriptCommand, который описан в Таблице 9-1. Ваше приложение может создать подкласс одного из этих классов, чтобы заменить поведение по умолчанию или выборочно изменить то поведение при некоторых обстоятельствах. В большинстве случаев поведение по умолчанию должно быть достаточным.

Для получения дополнительной информации о работе с командами посмотрите Команды Сценария.

Табличные 9-4  Подклассы для стандартных команд сценария

Класс

Описание

NSCloneCommand

Копирует указанный scriptable объект или объекты (такие как слова, абзацы, изображения, и т.д.) и вставляет их в указанное расположение. Этот класс обрабатывает duplicate Команда AppleScript.

NSCloseCommand

Закрывает указанный scriptable объект или объекты — обычно документ или окно.

NSCountCommand

Считает число элементов указанного класса в указанном контейнере объекта (таких как число прямоугольников в документе).

NSCreateCommand

Создает указанный scriptable объект (такой как документ или диаграмма), дополнительно предоставляя новый объект указанные атрибуты. Этот класс обрабатывает make Команда AppleScript.

NSDeleteCommand

Удаляет указанный scriptable объект или объекты.

NSExistsCommand

Определяет, существует ли указанный scriptable объект, такой как слово, абзац, или изображение.

NSGetCommand

Получает указанное значение или объект от указанного scriptable объекта. Для соответствующей информации посмотрите Получение и Установку Свойств и Элементов.

NSMoveCommand

Перемещает указанный scriptable объект или объекты. Для соответствующей информации посмотрите Изменение Стандартной Команды.

NSQuitCommand

Выходит из указанного приложения.

NSSetCommand

Наборы один или несколько атрибутов или отношения указанного scriptable объекта к одному или более значениям. Для соответствующей информации посмотрите Получение и Установку Свойств и Элементов.

Манипулирование событиями Apple

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

Табличные 9-5  Классы для управления событиями Apple

Класс

Описание

NSAppleEventDescriptor

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

NSAppleEventManager

Обеспечивает доступ к маленькому набору функций Apple Event Manager. Используемый прежде всего для того, чтобы непосредственно зарегистрировать обработчики событий Apple и для приостановки и возобновления событий Apple (описанный в Приостановке и Возобновлении Событий Apple и Команд Сценария). Для справочной информации посмотрите Ссылку менеджера по корпоративным мероприятиям Apple и Руководство по программированию Событий Apple.

NSAppleScript

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