我是 Cocoa 的新手,正在向有经验的 Cocoa 开发者寻求一些关于应用程序的建议。
我正在构建一个基本的 OmniGraffle 风格的应用程序,其中对象被绘制/拖动到画布上。对象在画布上后,可以选择它们以修改其属性(填充颜色、笔触颜色/宽度等)、调整大小、移动到新位置等。
为了热身,我编写了一个基本的绘图应用程序,它创建由鼠标在 custom 上绘制的对象(圆形、矩形等)NSView
,将对象添加到NSArray
集合中,并将集合的内容呈现到视图中. 我可以继续这样做,但我将不得不添加对检测对象选择、解析 z 索引、焦点突出显示、拖动手柄等所有相关渲染的支持。此外,在每个循环中渲染每个对象似乎非常浪费。
似乎更好的方法是将轻量级视图对象拖放到能够检测自身鼠标事件、绘制自身及其焦点环等的画布上。然而,虽然NSView
看起来像是具有这些属性的对象,但我在网络上看到很多关于它是一个有很多包袱的重量级组件的讨论。我偶然发现了NSCell
s 并阅读了它们,但我不确定它们是否是正确的选择。
有什么建议么?如果您能将我推向正确的方向,我将不胜感激。