【发布时间】:2011-08-27 01:38:00
【问题描述】:
我是 Cocoa 的新手,正在向有经验的 Cocoa 开发者寻求一些关于应用程序的建议。
我正在构建一个基本的 OmniGraffle 风格的应用程序,其中对象被绘制/拖动到画布上。对象在画布上后,可以选择它们以修改其属性(填充颜色、描边颜色/宽度等)、调整大小、移动到新位置等。
为了热身,我编写了一个基本的绘图应用程序,它可以创建由鼠标在自定义NSView 上绘制的对象(圆形、矩形等),然后将对象添加到NSArray 集合中,然后将集合的内容呈现到视图中。我可以继续这样做,但我将不得不添加对检测对象选择、解析 z 索引、焦点突出显示、拖动手柄等所有相关渲染的支持。此外,在每个循环中渲染每个对象似乎非常浪费。
似乎更好的方法是将轻量级视图对象拖放到能够检测自身鼠标事件、绘制自身及其焦点环等的画布上。然而,虽然NSView 看起来像是一个具有这些属性的对象,但我在网上看到很多关于它是一个有很多包袱的重量级组件的讨论。我偶然发现了NSCells 并阅读了它们,但我不确定它们是否是正确的选择。
有什么建议吗?如果您能将我推向正确的方向,我将不胜感激。
【问题讨论】:
-
我绝对不建议使用
NSCell。甚至NSTableView在其最新迭代中也已远离它。NSCell不好玩。 -
如果没有已经。里面有很多好主意。
标签: cocoa drawing nsview cocoa-design-patterns