单个UML图表形状是NSView子类还是NSBezierPaths?如何创建和管理图表?
答案 0 :(得分:3)
这样做的一种方法是:
这种粒度设计的优点是,如果您需要这样做,您可以决定用直接的CoreGraphics调用替换NSBezierPath绘图,而无需完全重新构建应用程序。
典型的Cocoa控件,例如tableView,实现了一堆不同的绘图方法,一个用于背景,一个用于网格线等等。所有这些都从视图的drawRect中调用(如果适用):。 / p>
或者您当然可以查看GCDrawKit,它似乎具有非常实用的功能。特别请查看随附的示例应用程序。
答案 1 :(得分:2)
你看过OmniGraffle吗?它可以做你需要的。
[非编程相关的答案......]
答案 2 :(得分:2)
您是否查看过/ Developer / Examples / AppKit中的Sketch示例项目?它应该至少让你到达目的地的一半。
答案 3 :(得分:2)
您通常会从NSView子类开始,以表示“画布”并处理绘图和鼠标/键盘事件。您可能会在绘图方法中使用NSBezierPath来填充和勾勒出形状。根据绘图代码的复杂程度,您可以将所有内容放在NSView子类中,或者创建一个NSCell子类,它可以从NSView中完成一些工作。在任何一种情况下,您都希望定义数据源协议(或创建绑定),以便从数据模型中代表UML项目的对象向NSView提供数据。
核心动画也值得考虑,虽然我会从一开始就使用NSView,至少对于一个简单的原型。