Установление привязки
Объекты на представлении действия являются только частью того, что вовлечено в создание пользовательского интерфейса действия. Если пользователи нажимают кнопку или вводят что-то в текстовое поле, ничего особенного не происходит, пока Вы не передаете те события к другим объектам в действии, знающим, как иметь дело с событиями. Даже при том, что Вы создаете действие AppleScript, базовая платформа Automator Основана на какао. Какао дает Вам два общих механизма для включения коммуникации между объектами представления и другими объектами в действии:
Выходы и целевое действие («действие» здесь не обозначает действие Automator),
Привязка
Предпочтительный подход для управления пользовательским интерфейсом действия должен использовать технологию привязки Какао; именно так проекты действий первоначально сконфигурированы в шаблонах проекта, и это - процедура, которую показывает это учебное руководство. Но можно управлять пользовательским интерфейсом с помощью альтернативного подхода, использующего выходы и возможно целевое действие. Альтернативы Привязке суммируют этот подход.
Привязка в действии
Привязка в Какао автоматически синхронизируется, значение между атрибутом объекта пользовательского интерфейса (скажите, выведенное на экран значение текстового поля) и свойство переносящего данные объекта (обычно называл объект модели). Это означает что каждый раз, когда пользователь редактирует управление или нажимает кнопку, что изменение автоматически передается к связанному свойству объекта, поддерживающего то значение внутренне. И каждый раз, когда то внутреннее значение изменяется, изменение автоматически передается к связанному атрибуту объекта пользовательского интерфейса, тогда выводящего на экран его.
Для действий переносящий данные объект является словарем, принадлежавшим самому объекту действия. Для действий AppleScript объект действия является почти всегда экземпляром AMAppleScriptAction. Каждое действие, независимо от языка программирования или языка сценариев, это использует, поддерживает внутренний словарь, получающий пользователей выбора, сделало в пользовательском интерфейсе. (AppleScript, эквивалентный для словаря, является записью.) Этот словарь вызывают словарем параметров. Это хранит пользователей значений, делают в пользовательском интерфейсе вместе с произвольным ключом для каждого значения. Когда Automator выполняет действие AppleScript в потоке операций, он передает его a parameters
запись в on run
обработчик в main.applescript
(См. Запись Сценария Действия для больше о on run
обработчик.)
То, когда Вы устанавливаете привязку между управлением пользовательским интерфейсом и свойством словаря параметров действия, привязка сделана через свойство посреднического объекта, вызвало контроллер. В main.nib
файл для действия, этот посреднический объект появляется в представлении Instance окна файла пера как экземпляр Параметров. При рассмотрении привязки в Интерфейсном Разработчике в области Bindings инспектора (см. рисунок 4-4 для примера), Вы видите его как комбинацию атрибута пользовательского интерфейса, свойства контроллера и свойства параметров.
Рисунок 4-1 иллюстрирует случай матрицы переключателя Передачи Случайное действие Элементов; здесь матричный атрибут selectionIndex
подключен к контроллеру selection
свойство, подключенное с numberMethod
свойство словаря параметров. Значение numberMethod
отражается основанный на нуле индекс установленного переключателя в матрице (1 указывает кнопку «Percentage» в примере).
Установление привязки действия
Для установления привязки для Передачи Случайное действие Элементов завершите следующие шаги с действием main.nib
файл, открытый в Интерфейсном Разработчике:
Выберите экземпляр Параметров в окне файла пера.
Параметры являются экземпляром NSObjectController, реализующего поведение контроллера.
Откройте окно инспектора (Инструменты> Показывают Инспектору), и выберите Attributes из раскрывающегося списка.
В области Attributes для экземпляра Параметров нажмите Add.
A
newKey
заполнитель появляется в таблице Keys.Дважды щелкнуть
newKey
выбрать слово и сделать его доступным для редактирования.Ввести
numberMethod
, заменаnewKey
.Нажмите Add снова и добавьте другой названный ключ
numberToChoose
.Посмотрите рисунок 4-2 для примера.
Экземпляр контроллера Параметров теперь инициализируется с ключами, которые будут использоваться в привязке между атрибутами двух из объектов пользовательского интерфейса и свойств словаря параметров. Обратите внимание на то, что шаблон проекта для всех типов действий предварительно сконфигурирован для создания привязки между экземпляром Параметров и словарем параметров действия. Видеть эту привязку:
Выберите экземпляр Параметров в окне файла пера.
Выберите Bindings из раскрывающегося списка инспектора.
Щелкните по треугольнику раскрытия рядом с
contentObject
развернуть представление.Рисунок 4-3 показывает привязку между объектом контроллера и
parameters
свойство объекта действия (Владелец Файла).
Заключительный этап установления привязки требует, чтобы Вы связали атрибуты двух из объектов пользовательского интерфейса к соответствующим свойствам словаря параметров через selection
свойство контроллера Параметров.
Выберите матрицу переключателя в представлении действия.
Выберите Bindings из раскрывающегося списка инспектора.
Щелкните по треугольнику раскрытия рядом с
selectedIndex
атрибут матрицы.Удостоверьтесь, что Связывание для открытия списка установлено в Параметры.
Удостоверьтесь, что поле комбинированного списка Controller Key установлено в
selection
.Установите значение поля комбинированного списка Model Key Path к
numberMethod
.Удостоверьтесь флажок Bind в верхнем правом углу
selectedIndex
представление проверяется.Инспектор Привязки область должен быть похожим на пример на рисунке 4-4 в этой точке.
Выберите текстовое поле налево от матрицы.
В области Bindings инспектора щелкните по треугольнику раскрытия рядом с атрибутом значения.
Удостоверьтесь, что Связывание с полем комбинированного списка содержит Параметры, и поле комбинированного списка Controller Key содержит
selection
.Установите поле комбинированного списка Model Key Path в
numberToChoose
.Удостоверьтесь, что проверяется флажок Continuously Updates Value.
Проверка этого управления говорит механизму привязки синхронизировать значение в текстовом поле, не ожидая пользователя для нажатия Return или клавиш Tab.
Удостоверьтесь, что проверяется флажок Bind.
Альтернативы привязке
Несмотря на то, что привязка является предпочтительным методом для включения коммуникации объекты действия, существуют альтернативы привязке. Например, можно использовать выходы и целевое действие для упрощения коммуникации данных между объектами в представлении действия и словаре параметров, принадлежавшем объекту действия. В этом случае Вы также используете объект контроллера, но вместо привязки он поддерживает персистентные ссылки на другие объекты, известные как выходы. Таким образом это может всегда отправлять сообщение в, скажем, текстовое поле для получения его значения. Объекты пользовательского интерфейса и контроллеры могут также быть установлены для использования целевого действия. В этом механизме объект управления (такой как кнопка) сконфигурирован с целью сообщения — обычно контроллера — и селектора, определяющего сообщение отправлять. Когда пользователи активируют объект управления, сообщение автоматически отправляется в контроллер. Можно установить выход и соединения целевого действия в Интерфейсном Разработчике, архивирующем эти соединения в файле пера.
Automator обеспечивает третью альтернативу для синхронизации значений в параметрах, и пользователи настроек делают в пользовательском интерфейсе действия. Это определяет update parameters
и parameters updated
команды, которые можно присоединить к представлению действия с помощью AppleScript Studio. Automator отправляет update parameters
команда, когда параметры действия должны быть обновлены от значений в пользовательском интерфейсе. Это отправляет parameters updated
когда существуют любые изменения в словаре параметров действия. “Реализация Действия AppleScript” в Руководстве по программированию Automator описывает эту процедуру подробно.