Объект управления
Управление является типом представления в пользовательском интерфейсе, отправляющем сообщение в другой объект, когда пользователь управляет им определенным способом, таким как ответвление кнопки или перетаскивание ползунка. Управление является агентом в модели целевого действия. Управление (или, в OS X, ячейке управления) хранит информацию, необходимую для отправки сообщения: ссылка на объект получить сообщение (цель) и селектор, идентифицирующий метод для вызова на цель (действие). Когда пользователь управляет управлением в особенном методе, оно отправляет сообщение в объект приложения, тогда передающий сообщение действия к цели.
Абстрактные базовые классы для средств управления UIControl
, в платформе UIKit, и NSControl
, в платформе AppKit. Все средства управления являются экземплярами конкретных подклассов этих базовых классов. Общие типы средств управления в этих платформах являются кнопками, ползунками и текстовыми полями. UIKit и AppKit также имеют средства управления, которые являются определенными для их платформ, например, средства управления страницей (UIKit) и цветные скважины (OS X).
Когда сообщения Действия Отправляются, в UIKit События Управления Определяют
События управления являются аспектом проекта платформы UIKit для средств управления. В UIKit цель и селектор действия определяют форму сообщения действия, но одно или более событий управления — также связанный с управлением — определяют, когда отправляется сообщение. Событие управления является a enum
постоянный, который представляет поведение касания (например, UIControlEventTouchUpInside
), фаза сеанса редактирования (например, UIControlEventEditingDidEnd
), или изменение в значении (UIControlEventValueChanged
). Можно связать многократные события управления с управлением, и если действие, представленное кем-либо из этих констант, происходит, управление отправляет сообщение действия в цель.
Некоторые средства управления требуют, чтобы было установлено определенное событие управления. Например, UISwitch
объекты только отправляют свое сообщение действия когда UIControlEventValueChanged
событие управления удовлетворено.
В AppKit средства управления могут иметь одну или более ячеек
Большинство средств управления в платформе AppKit имеет один или несколько объектов ячейки, связанных с ними. Ячейка является экземпляром класса, наследовавшегося, прямо или косвенно, от NSCell
. Его основная роль должна хранить целевой объект и селектор действия для его управления. Даже при том, что ячейка не является представлением, она может нарисовать себя и реагировать на события, но только, когда проинструктировано его управлением. В архитектуре ячейки управления управление является представлением противостояния для своей ячейки (или ячеек); когда его отличительное пользовательское событие происходит, это управляет поведением ячейки и составляет и отправляет сообщение действия.
Несколько средств управления в AppKit имеют многократные ячейки. Например, NSMatrix
объекты являются средствами управления, содержащими строки или матрицы ячеек того же или другого типа. Каждая ячейка может иметь свою собственную цель и селектор действия. Несколько средств управления в AppKit хранят свою цель и информацию о действии самих, и не используют ячейку.