NSTableView,多个单元格和绑定
Posted
技术标签:
【中文标题】NSTableView,多个单元格和绑定【英文标题】:NSTableView, multiple cells and bindings 【发布时间】:2009-09-21 20:20:47 【问题描述】:我正在尝试创建一个类似于 Motion 的属性视图的视图。
我的每个属性对象都包含一个它想要显示的单元格类型的定义。但同时,我想使用绑定,以便自动更新值,因为它们可以在其他地方更改。
我尝试了几种不同的方法来解决这个问题。
多个单元格和dataCellForTableColumn:
虽然这允许对所有单元格类型正确进行渲染,但我失去了绑定。
NSProxy:我也尝试过使用代理对象,我认为该代理对象会将所有方法转发到它后面的选定单元格类型,但同样,绑定在这里似乎不起作用。
李>以前有人遇到过这种问题吗?或者这是绑定不会削减它的情况之一,我需要自己做繁重的工作?
干杯!
【问题讨论】:
【参考方案1】:我还没有实际测试过它,但是当你使用 dataCellForTableColumn:row: 时你不应该丢失绑定?您能否更详细地描述一下您在绑定方面的尝试?
您应该能够将列的值绑定设置为对象的“值”属性。然后,如果您在 dataCellForTableColumn:row: 中返回正确类型的单元格,它应该会正确显示。
编辑:--- 删除了关于单元格与视图的无端错误建议 :)
【讨论】:
就像你所说的那样——我已经将一个 NSArrayController 绑定到表列,如果我使用 NSTextFieldCell,值会正确显示。当我更改它们时,它们也被正确编辑(它在我的 Property 对象上调用适当的 setObjectValue:)。但是当我返回一个 NSSliderCell 时,它会正确设置值,但是当我拖动滑块时,它不会相应地设置值。 我刚刚尝试了一个测试示例,你是对的,它就像你描述的那样失败了。我不确定在返回之前我在单元格上没有正确设置什么(就绑定而言?表示对象等?)。希望有更博学的人在这里权衡。 我不确定这是否是“正确”的方式,但如果我也设置表格视图的数据源,并且只实现 tableView:setObjectValue:forTableColumn:row:,这反过来只需调用 setObjectValue: 在我的 Property 类上,一切似乎都正常。我很想知道是否有其他方法,但现在,这对我有用。 很高兴你让它工作。我很好奇这是如何工作的细节。如果你知道完整的故事,请告诉我。以上是关于NSTableView,多个单元格和绑定的主要内容,如果未能解决你的问题,请参考以下文章