【问题标题】:NSArrayController selection not updating with NSTableView bindingNSArrayController 选择未使用 NSTableView 绑定更新
【发布时间】:2014-03-26 01:41:35
【问题描述】:

这让我困惑了好几个小时......

我有一个带有属性(NSMutableArray *cuesArray) 和其他一些属性的对象(CuesDoc)。 cues 数组包含多个 Cue 对象。在我的AppDelegate 中有一个名为(CuesDoc*) currentCuesDoc 的属性。

在 IB 中,我有一个 NSArrayController,它绑定到 AppDelegate.currentCuesDoc.cuesArray

我有一个基于视图的NSTableView,它绑定到NSArrayController,可以在表格和cuesArray 中添加/删除/编辑值。到目前为止一切顺利。

我在下面有详细字段,它们绑定到NSArrayController.selection,并为每个属性设置了模型键路径。

当视图首次出现时,详细信息字段会填充表格视图中第一项的内容,但是当我选择其他行时,详细信息字段不会更新以反映当前选择。

我在selectionIndexesselection 中为NSArrayController 添加了一个观察者,当视图出现时,我被调用一次observeValueForKeyPath: 方法,但不是在更改选择之后。

【问题讨论】:

    标签: objective-c macos cocoa cocoa-bindings nsarraycontroller


    【解决方案1】:

    对于基于视图的NSTableViews,您必须将tableView 的选择索引绑定到selectionIndexes 的数组控制器键,以使视图的选择与控制器的选择保持同步。选择绑定与内容绑定是分开的。较旧的基于单元的NSTableView API 不需要此步骤。

    【讨论】:

    • 宾果游戏!那行得通。出于某种原因,我不记得其他时候单独绑定选择。
    • 您不必对基于单元格的 NSTableViews 执行此操作,仅对基于视图的 NSTableViews 执行此操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多