Установление привязки

Объекты на представлении действия являются только частью того, что вовлечено в создание пользовательского интерфейса действия. Если пользователи нажимают кнопку или вводят что-то в текстовое поле, ничего особенного не происходит, пока Вы не передаете те события к другим объектам в действии, знающим, как иметь дело с событиями. Даже при том, что Вы создаете действие AppleScript, базовая платформа 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» в примере).

  Привязка рисунка 4-1 между раскрывающимся списком и свойством словаря параметра
Binding between the pop-up list and a property of the parameter dictionary

Установление привязки действия

Для установления привязки для Передачи Случайное действие Элементов завершите следующие шаги с действием main.nib файл, открытый в Интерфейсном Разработчике:

  1. Выберите экземпляр Параметров в окне файла пера.

    Параметры являются экземпляром NSObjectController, реализующего поведение контроллера.

  2. Откройте окно инспектора (Инструменты> Показывают Инспектору), и выберите Attributes из раскрывающегося списка.

  3. В области Attributes для экземпляра Параметров нажмите Add.

    A newKey заполнитель появляется в таблице Keys.

  4. Дважды щелкнуть newKey выбрать слово и сделать его доступным для редактирования.

  5. Ввести numberMethod, замена newKey.

  6. Нажмите Add снова и добавьте другой названный ключ numberToChoose.

    Посмотрите рисунок 4-2 для примера.

      Ключи Добавления рисунка 4-2 как атрибуты экземпляра Параметров.
    Adding keys as attributes of the Parameters instance.

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

  1. Выберите экземпляр Параметров в окне файла пера.

  2. Выберите Bindings из раскрывающегося списка инспектора.

  3. Щелкните по треугольнику раскрытия рядом с contentObject развернуть представление.

    Рисунок 4-3 показывает привязку между объектом контроллера и parameters свойство объекта действия (Владелец Файла).

  Привязка рисунка 4-3 между контроллером и словарем параметров
Binding between the controller and the parameters dictionary

Заключительный этап установления привязки требует, чтобы Вы связали атрибуты двух из объектов пользовательского интерфейса к соответствующим свойствам словаря параметров через selection свойство контроллера Параметров.

  1. Выберите матрицу переключателя в представлении действия.

  2. Выберите Bindings из раскрывающегося списка инспектора.

  3. Щелкните по треугольнику раскрытия рядом с selectedIndex атрибут матрицы.

  4. Удостоверьтесь, что Связывание для открытия списка установлено в Параметры.

  5. Удостоверьтесь, что поле комбинированного списка Controller Key установлено в selection.

  6. Установите значение поля комбинированного списка Model Key Path к numberMethod.

  7. Удостоверьтесь флажок Bind в верхнем правом углу selectedIndex представление проверяется.

    Инспектор Привязки область должен быть похожим на пример на рисунке 4-4 в этой точке.

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

  9. В области Bindings инспектора щелкните по треугольнику раскрытия рядом с атрибутом значения.

  10. Удостоверьтесь, что Связывание с полем комбинированного списка содержит Параметры, и поле комбинированного списка Controller Key содержит selection.

  11. Установите поле комбинированного списка Model Key Path в numberToChoose.

  12. Удостоверьтесь, что проверяется флажок Continuously Updates Value.

    Проверка этого управления говорит механизму привязки синхронизировать значение в текстовом поле, не ожидая пользователя для нажатия Return или клавиш Tab.

  13. Удостоверьтесь, что проверяется флажок Bind.

Рисунок 4-4  selectedIndex приписывает в инспекторе привязки
The selectedIndex attribute in the bindings inspector

Альтернативы привязке

Несмотря на то, что привязка является предпочтительным методом для включения коммуникации объекты действия, существуют альтернативы привязке. Например, можно использовать выходы и целевое действие для упрощения коммуникации данных между объектами в представлении действия и словаре параметров, принадлежавшем объекту действия. В этом случае Вы также используете объект контроллера, но вместо привязки он поддерживает персистентные ссылки на другие объекты, известные как выходы. Таким образом это может всегда отправлять сообщение в, скажем, текстовое поле для получения его значения. Объекты пользовательского интерфейса и контроллеры могут также быть установлены для использования целевого действия. В этом механизме объект управления (такой как кнопка) сконфигурирован с целью сообщения — обычно контроллера — и селектора, определяющего сообщение отправлять. Когда пользователи активируют объект управления, сообщение автоматически отправляется в контроллер. Можно установить выход и соединения целевого действия в Интерфейсном Разработчике, архивирующем эти соединения в файле пера.

Automator обеспечивает третью альтернативу для синхронизации значений в параметрах, и пользователи настроек делают в пользовательском интерфейсе действия. Это определяет update parameters и parameters updated команды, которые можно присоединить к представлению действия с помощью AppleScript Studio. Automator отправляет update parameters команда, когда параметры действия должны быть обновлены от значений в пользовательском интерфейсе. Это отправляет parameters updated когда существуют любые изменения в словаре параметров действия. “Реализация Действия AppleScript” в Руководстве по программированию Automator описывает эту процедуру подробно.