可可;将文本字段绑定到已过滤数组的总和(来自NSArrayController)

时间:2010-09-11 10:57:21

标签: cocoa cocoa-bindings nsarraycontroller

我(例如)有一辆车进来的车。每辆车都有名字,颜色和里程。

我可以有一个文本字段,显示界面构建器中使用绑定的所有汽车的总里程数:

值 - 绑定到:Car Array Controller.arrangedObjects。@ sum.mielage

但是,我想为红色汽车和布鲁斯汽车的总里程分开一些箱子。我知道我可以使用谓词对数组进行编码,例如:

NSPredicate *bluePredicate = [NSPredicate predicateWithFormat:@"color like blue"];

NSArray *blueCars = [[carArrayController arrangedObjects] filteredArrayUsingPredicate:bluePredicate];

NSNumber *blueMileage = [blueFilteredArray valueForKeyPath:@"@sum.mileage"];

但我不想这样做,必须为文本框编写IBOutlets代码。如果可能的话,我想纯粹在IB中这样做。

任何想法??

干杯,奥利

2 个答案:

答案 0 :(得分:0)

为什么不为每种车型创建单独的阵列控制器呢?或者这也是可变的?

如果汽车颜色是可变的,最好的方法可能仍然是以编程方式执行此操作。

答案 1 :(得分:-1)

不要做很多控制器。我认为最优雅的解决方案是子类化nsarraycontroller并以某种方式添加对“带谓词的排列对象”的支持