我正在为Mac OS X开发我的第一个应用程序。它允许编辑tableviews的内容,我想重新创建在Things App中如何编辑单元格的行为。它应该像这样工作:双击单元格应该开始高级编辑单元格的内容。问题是我不明白如何为基于视图的表视图实现它。
我已经阅读了适用于Mac的Table View编程指南,并观看了UWDC'11关于自定义基于视图的表格视图的会话120,但这对我没有多大帮助。
我认为我应该以某种方式跟踪编辑事件,并在编辑开始后将单元格的原型从标准的原型更改为更高级的原型。我知道如何使用子类化和单元格原型来改变单元格的外观。但我不明白如何在编辑过程中更改单元格的视图。
无论如何,使用标准的NSTableView创建这种自定义控件是正确的吗?
请注意我在这个应用程序中使用的是Core Data,NSArrayController和Cocoa Bindings。
答案 0 :(得分:1)
通过双击启动编辑实际上是非常困难的基于视图的NSTableView - 它设置为类似Finder的“点击并等待”进行编辑,如果你尝试实现自己的“双击”启动编辑“它经常会混淆,并尝试自己做,你最终会在奇怪的时间关闭/打开编辑。相信我,我试过了。
除此之外,在基于视图的模式中,添加/删除小部件或在编辑时移动小部件非常容易 - 当然,您需要跟踪基本的“我是否正在编辑此单元格”,但是一旦你做了您可以简单地创建小部件并将它们放在您喜欢的NSTableCellView中。您可能不想替换实际的文本字段 - 当然,修改它,但让Apple的代码完成将其从不可编辑变为可编辑等的基本工作。