2010-11-14 4 views
2

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

Кен

ответ

1

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

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

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

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

Смежные вопросы