Вот как вы можете различить NSCell и NSView:
NSCells - это в основном штампы.Учитывая определенное значение / объект, NSCell знает, как нарисовать это на экране так, как вы этого хотите.Как и NSTextCells, умеют рисовать NSString на экране так, как вы хотите.NSCells не имеют состояния, ничего не запоминают, это всего лишь один набор инструкций рисования, которые выполняются с заданным значением / объектом.Идея состоит в том, чтобы максимально использовать NSCells, чтобы сделать рисование на экране очень простым.
NSViews являются своего рода логическими контейнерами для того, что происходит на вашем экране.Технически они могут рисовать самостоятельно, но многие из них используют NSCells для рисования.Например, NSTextField использует NSTextCell для рисования текста на экране, а также содержит дополнительную логику, необходимую для переключения между редактированием и нередактированием, отображая текстовое поле, которое можно ввести во время редактирования, и используя NSTextCell, когда вы этого не делаете.редактирования.NSViews также являются частью цепочки респондентов и могут реагировать на щелчки мышью, события клавиатуры и тому подобное.
Возможно, в итоге вы получите оба NSView, которые будут содержать все элементы управления, которые вы хотите использоватьнастроить каждый объект и NSCells для рисования пользовательских элементов пользовательского интерфейса (например, если вы используете нестандартные элементы управления).