Пользовательские виды или пользовательские ячейки - PullRequest
2 голосов
/ 15 ноября 2010

У меня есть вопрос о создании пользовательских представлений. Я хотел реализовать интерфейс, в котором я хочу настроить разные объекты в одном месте, каждый из которых имеет свои собственные элементы управления. Вроде как в автоматизаторе, справа вид, где рабочий процесс показан с различными действиями. Это подклассы NSView или NSCell? Любой пример будет оценен!

Ken

1 Ответ

1 голос
/ 24 февраля 2011

Вот как вы можете различить NSCell и NSView:

NSCells - это в основном штампы.Учитывая определенное значение / объект, NSCell знает, как нарисовать это на экране так, как вы этого хотите.Как и NSTextCells, умеют рисовать NSString на экране так, как вы хотите.NSCells не имеют состояния, ничего не запоминают, это всего лишь один набор инструкций рисования, которые выполняются с заданным значением / объектом.Идея состоит в том, чтобы максимально использовать NSCells, чтобы сделать рисование на экране очень простым.

NSViews являются своего рода логическими контейнерами для того, что происходит на вашем экране.Технически они могут рисовать самостоятельно, но многие из них используют NSCells для рисования.Например, NSTextField использует NSTextCell для рисования текста на экране, а также содержит дополнительную логику, необходимую для переключения между редактированием и нередактированием, отображая текстовое поле, которое можно ввести во время редактирования, и используя NSTextCell, когда вы этого не делаете.редактирования.NSViews также являются частью цепочки респондентов и могут реагировать на щелчки мышью, события клавиатуры и тому подобное.

Возможно, в итоге вы получите оба NSView, которые будут содержать все элементы управления, которые вы хотите использоватьнастроить каждый объект и NSCells для рисования пользовательских элементов пользовательского интерфейса (например, если вы используете нестандартные элементы управления).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...