我正在尝试为一种头脑风暴应用程序创建一个视图,例如OmniGraffle,其元素包含文本视图并且可以被拖动。 (此外,应该可以用箭头连接,但这不是(问题))
我完成了我的家庭作业,并通过谷歌搜索并阅读有关可可的书籍,但似乎没有类似的例子。 既然我也是可可的新手,我在这里有点无奈。
我确信的是,我需要一个自定义视图,我可以在其中创建我的元素 - 我到目前为止尝试的是:
首先,我搜索了将子窗口添加到窗口以创建元素的语法。我想,子窗口会自动移动到前面等等 问题:由于你经验丰富的可可程序员可能并不感到惊讶,我惊讶地发现没有任何类似的东西 - 这似乎是某种东西,这只是在Cocoa中没有意图?!
然后我考虑创建包含标题栏图纸的自定义视图的子视图(用户可以单击以拖动元素)和NSTextView
。
问题:
因此,我现在想在周围的自定义视图中进行标题栏绘制,并以编程方式创建textview(据我所知,文本 - “视图”不是真正的视图并且需要它来自NSCell的功能可以减少视图的所有工作量吗?) 问题:
initWithFrame:
的{{1}}似乎被忽略了或者我错了吗?) 。 嗯,既然没有任何作用,我读的越多,似乎发生的问题就越多,我感到非常困惑和沮丧。
我怎么能实现这样的程序?有人可以请我朝正确的方向推进我吗?
答案 0 :(得分:1)
我为可拖动元素创建了一个类,我在实例变量中保存了位置,大小和文本。在我看来,每个新的元素实例都被添加到一个数组中(现在,这可以在没有控制器的情况下工作)。该数组用于绘制drawRect:
中循环中的所有元素。对于元素的文本,我只使用NSTextFieldCell,它被设置为同一循环中每个元素的保存文本。
这样也可以重叠元素。