【问题标题】:NSTableView, multiple cells and bindingsNSTableView,多个单元格和绑定
【发布时间】:2009-09-21 20:20:47
【问题描述】:

我正在尝试创建一个类似于 Motion 的属性视图的视图。

我的每个属性对象都包含一个它想要显示的单元格类型的定义。但同时,我想使用绑定,以便自动更新值,因为它们可以在其他地方更改。

我尝试了几种不同的方法来解决这个问题。

  • 多个单元格和dataCellForTableColumn: 虽然这允许对所有单元格类型正确进行渲染,但我失去了绑定。

  • NSProxy:我也尝试过使用代理对象,我认为该代理对象会将所有方法转发到它后面的选定单元格类型,但同样,绑定在这里似乎不起作用。

    李>

以前有人遇到过这种问题吗?或者这是绑定不会削减它的情况之一,我需要自己做繁重的工作?

干杯!

【问题讨论】:

    标签: objective-c cocoa cocoa-bindings nstableview


    【解决方案1】:

    我还没有实际测试过它,但是当你使用 dataCellForTableColumn:row: 时你不应该丢失绑定?您能否更详细地描述一下您在绑定方面的尝试?

    您应该能够将列的值绑定设置为对象的“值”属性。然后,如果您在 dataCellForTableColumn:row: 中返回正确类型的单元格,它应该会正确显示。

    编辑:--- 删除了关于单元格与视图的无端错误建议 :)

    【讨论】:

    • 就像你所说的那样——我已经将一个 NSArrayController 绑定到表列,如果我使用 NSTextFieldCell,值会正确显示。当我更改它们时,它们也被正确编辑(它在我的 Property 对象上调用适当的 setObjectValue:)。但是当我返回一个 NSSliderCell 时,它会正确设置值,但是当我拖动滑块时,它不会相应地设置值。
    • 我刚刚尝试了一个测试示例,你是对的,它就像你描述的那样失败了。我不确定在返回之前我在单元格上没有正确设置什么(就绑定而言?表示对象等?)。希望有更博学的人在这里权衡。
    • 我不确定这是否是“正确”的方式,但如果我也设置表格视图的数据源,并且只实现 tableView:setObjectValue:forTableColumn:row:,这反过来只需调用 setObjectValue: 在我的 Property 类上,一切似乎都正常。我很想知道是否有其他方法,但现在,这对我有用。
    • 很高兴你让它工作。我很好奇这是如何工作的细节。如果你知道完整的故事,请告诉我。
    猜你喜欢
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 2018-08-04
    • 2020-09-07
    • 2015-03-22
    相关资源
    最近更新 更多