Я новичок в Какао и ищу небольшой совет для приложения от опытных Какао-эрс.
Я создаю базовое приложение в стиле OmniGraffle, в котором объекты рисуются / перетаскиваются на холст.После того, как объекты находятся на холсте, их можно выбрать, чтобы изменить их свойства (цвет заливки, цвет / ширина обводки и т. Д.), Изменить их размер, переместить на новую позицию и т. Д.
Чтобы согретьсяЯ написал базовое приложение для рисования, которое создает объекты (круги, прямоугольники и т. д.), нарисованные мышью на пользовательском NSView
, добавляет объекты в коллекцию NSArray
и отображает содержимое коллекции.в вид.Я мог бы продолжить в том же духе, но мне придется добавить поддержку для обнаружения выделения объектов, разрешения z-индексации, выделения фокуса, маркеров перетаскивания и т. Д. Со всеми связанными рендерингами.Кроме того, рендеринг каждого объекта в каждом цикле кажется ужасно расточительным.
Похоже, что лучшим подходом было бы поместить легкие объекты просмотра на холст, который мог бы обнаруживать события мыши на себе, рисовать себя и кольца фокусировки, и так далее.Тем не менее, хотя NSView
выглядит как объект с этими свойствами, я вижу много болтовни в Интернете о том, что это тяжеловесный компонент с большим количеством багажа.Я наткнулся на NSCell
s и прочитал их, но я не уверен, что они являются правильной альтернативой.
Есть предложения?Если вы можете подтолкнуть меня в правильном направлении, я буду очень признателен.