Действие Target

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

Art/target_action.jpg

Событие, инициировавшее сообщение действия, может быть чем-либо, как объект, отправляющий сообщение, может быть любым объектом. Например, объект устройства распознавания жеста мог бы отправить сообщение действия в другой объект, когда это распознает свой жест. Однако парадигма целевого действия обычно найдена со средствами управления, такими как кнопки и ползунки. Когда пользователь управляет объектом управления, он отправляет сообщение в указанный объект. Объект управления является экземпляром подкласса UIControl (iOS) или NSControl (OS X). И селектор действия и целевой объект являются свойствами объекта управления или, в платформе AppKit, свойствах объекта ячейки управления.

Метод действия должен иметь определенную форму

Методы действия должны иметь стандартную подпись. Платформа UIKit разрешает некоторое изменение подписи, но обе платформы принимают методы действия с подписью, подобной следующему:

- (IBAction)doSomething:(id)sender;

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

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

Можно поставить цель и действие в коде или Используя инструменты

Можно установить действие и цель управления (или ячейка) объект программно или в Интерфейсном Разработчике. Установка этих свойств эффективно соединяет управление и его цель через действие. При соединении управления и его цели в Интерфейсном разработчике соединение архивируется в файле пера. Когда приложение более поздние загрузки файл пера, восстанавливается соединение.

Можно поставить цель сообщения действия к nil. В этом случае приложение определяет цель во время выполнения; это отправляет сообщение действия сначала первому респонденту, и оттуда это восстанавливает работоспособность цепочка респондента, пока это не обрабатывается (если вообще).

Действие Target Отличается в iOS и OS X

Несмотря на то, что концептуально шаблон разработки целевого действия является тем же для обеих платформ, UIKit и AppKit реализуют его по-другому:

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

  • UIKit позволяет несколько различных подписей для методов действия. Например, следующая подпись допустима:

    - (IBAction)action:(id)sender forEvent:(UIEvent *)event
  • AppKit использует архитектуру ячейки управления для реализации целевого действия для большинства (но не все) средства управления. В этой архитектуре управлению «принадлежат» один или несколько объектов ячейки более легкого веса, и ячейка содержит цель и свойства действия для его управления. Когда пользователь щелкает или иначе активирует управление, оно извлекает эту информацию из своей ячейки и отправляет сообщение действия.

Необходимые как условие статьи

Похожие статьи

Категорическое обсуждение