假设我有一个包含许多“blob”对象的NSArrayController
。这些对象通过绑定(bind)显示在基于 View 的 NSTableView
中。
现在假设每个“blob”对象都包含一个名为 amount
的属性。对于表格每一行中的一个 NSView
,我想显示 amount/max_amount_in_array
。
换句话说,我需要以某种方式将我的单元格绑定(bind)到 NSArrayController
的 arrangedObjects.@max.amount
和 NSTableViewCell
的 objectValue.amount
同时执行我的计算。
有没有办法使用绑定(bind)很好地处理这个问题?
目前我唯一需要的想法是在“blob”中拥有一个 ratio
属性,并在每次将对象添加到数组时自己重新计算它。这是很有可能的,但似乎应该有一种更像绑定(bind)的方法来解决这个问题。
最佳答案
我现在已经这样做了:
[libraryCell.myView bind:@"amount"
toObject:libraryCell
withKeyPath:@"objectValue.amount"
options:nil];
[libraryCell.myView bind:@"max"
toObject:_librariesController
withKeyPath:@"arrangedObjects.@max.amount"
options:nil];
因此,myView 中有两个属性(amount 和 max),当它们中的任何一个发生更改时,我都会进行计算并相应地更新显示。
关于objective-c - 创建一个数组项,其属性依赖于数组本身的聚合函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21920317/