1

我正在为 Mac OS X 开发我的第一个应用程序。它允许编辑表格视图的内容,并且我想重新创建在 Things 应用程序中如何编辑单元格的行为。它应该像这样工作:双击单元格应该开始对单元格内容进行高级编辑。问题是我不明白如何为基于视图的表格视图实现这一点。

在此处输入图像描述

我已经阅读了 Mac 的 Table View Programming Guide 并观看了 UWDC'11 中关于自定义基于视图的 tableviews 的 session 120,但这对我没有太大帮助。

我假设我应该在编辑开始后以某种方式跟踪编辑事件并将单元格的原型从标准原型更改为更高级的原型。我知道如何使用子类化和单元格的原型来更改单元格的外观。但我不明白如何在编辑过程中更改单元格的视图。

无论如何,使用标准 NSTableView 创建这种自定义控件是否正确?

请注意,我在这个应用程序中使用了 Core Data、NSArrayController 和 Cocoa Bindings。

4

1 回答 1

1

对于基于视图的 NSTableView,通过双击启动编辑实际上非常困难——它被设置为执行类似于 Finder 的“单击并等待”进行编辑,如果您尝试实现自己的“双击启动编辑”它经常会感到困惑并尝试自己做,最终你会在奇怪的时候关闭/打开编辑。相信我,我试过了。

除此之外,在基于视图的模式下,在编辑时添加/删除小部件或移动它们非常容易——当然,你需要跟踪基本的“我在编辑这个单元格吗”,但是一旦你这样做了,你就可以简单地创建小部件并将它们放在您喜欢的 NSTableCellView 中。您可能不想替换实际的文本字段——当然可以修改它,但让 Apple 的代码完成将其从不可编辑变为可编辑等的基本工作。

于 2014-01-12T23:31:16.927 回答