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

标签 objective-c macos cocoa cocoa-bindings nsarraycontroller

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

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

换句话说,我需要以某种方式将我的单元格绑定(bind)到 NSArrayControllerarrangedObjects.@max.amountNSTableViewCellobjectValue.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/

相关文章:

ios - 初始化对象时出错。无法为 PFObject 设置值

ios - React Native 创建自定义组件/库

iphone - 加快 iPhone 3G 上的全屏图像绘制

像 getch() 这样的 C 函数在 Mac 上不起作用 — 我可以使用 Windows VM 来运行它们吗?

macos - 在 Mac OS 上启动 Squirrel SQL 客户端

ios - 保留 UIImagePickerController 的委托(delegate)

r - 如何找出 Mac OSX 中的 R 库位置?

objective-c - 设置子类 NSTableCellView 的边框

iphone - 如何将对象传递给委托(delegate)?

objective-c - 为什么我不应该只定义 #define NSFM [NSFileManager defaultManager] 而不是每次都写出来?