О ячейках и средствах управления

Эта тема дает основную информацию о NSCell и NSControl.

О NSCell

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

NSCell используется в большой степени большинством классов NSControl для реализации их внутренних работ. Например, NSSlider использует NSSliderCell, NSTextField использует NSTextFieldCell, и NSBrowser использует NSBrowserCell. Отправка сообщения к NSControl часто более проста, чем контакт непосредственно с соответствующим NSCell. Например, NSControls обычно вызывают updateCell: (то, чтобы заставлять ячейку быть выведенным на экран) после изменения атрибута ячеек; тогда как при прямом вызове соответствующего метода NSCell NSCell не мог бы автоматически вывести на экран себя снова.

Некоторые подклассы NSControl (особенно NSMatrix) группа NSCells в расположении, где они действуют вместе некоторым совместным способом. Таким образом, с NSMatrix, можно реализовать унифицированно размерную группу переключателей, не нуждаясь в NSView для каждой кнопки (и не нуждаясь в объекте NSText как полевой редактор для текста на каждой кнопке).

Класс NSCell обеспечивает примитивы для отображения текста или изображения, редактирование текста, установка и получение объектных значений, поддержание состояния, выделение и отслеживание мыши. Метод NSCELL trackMouse:inRect:ofView:untilMouseUp: реализует механизм, отправляющий сообщения действия в целевые объекты. Однако NSCell реализует опции цели/действия абстрактно, задерживая подробные данные реализации к NSActionCell и его подклассам.

О NSControl

NSControl является абстрактным суперклассом, обеспечивающим три фундаментальных функции реализации устройств пользовательского интерфейса. Во-первых, как подкласс NSView, NSControl рисует или координирует получение, экранное представление устройства. Во-вторых, это получает и реагирует на сгенерированные пользователями события в своих границах путем переопределения NSResponder’s mouseDown: метод и обеспечение позиции в цепочке респондента. В-третьих, это реализует sendAction:to: метод для отправки сообщения действия в целевой объект NSCONTROL. Подклассы NSControl, определенного в Наборе Приложения, являются NSBrowser, NSButton (и его подкласс NSPopUpButton), NSColorWell, NSImageView, NSMatrix (и его подкласс NSForm), NSScroller, NSSlider, NSTableView и NSTextField. Экземпляры конкретных подклассов NSControl часто упоминаются как, просто, средства управления.