创建一个数组项,其属性依赖于数组本身的聚合函数

时间:2014-02-20 21:46:38

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

假设我有一个包含许多“blob”对象的NSArrayController。这些对象通过绑定显示在基于视图的NSTableView中。

现在假设每个'blob'对象都包含一个名为amount的属性。对于表格每行中的NSView之一,我想显示amount / max_amount_in_array

换句话说,我不知何故需要同时将我的单元格绑定到NSArrayController的{​​{1}}和arrangedObjects.@max.amount的{​​{1}}并执行我的计算

有没有办法使用绑定很好地处理这个?

目前唯一的想法是在'blob'中拥有NSTableViewCell属性,并在每次将对象添加到数组时自行重新计算。这很有可能,但似乎应该有一种更具约束力的方式来解决问题。

1 个答案:

答案 0 :(得分:0)

我现在这样做了:

[libraryCell.myView bind:@"amount"
                toObject:libraryCell
             withKeyPath:@"objectValue.amount"
                 options:nil];

[libraryCell.myView bind:@"max"
                toObject:_librariesController
             withKeyPath:@"arrangedObjects.@max.amount"
                 options:nil];

myView中有两个属性(金额和最大值),当其中任何一个更改时,我会进行计算并相应地更新显示。