Какао;Привязка текстового поля к сумме фильтруемого массива (из NSArrayController) - PullRequest
1 голос
/ 11 сентября 2010

У меня есть (например) таблица с автомобилями. У каждого автомобиля есть имя, цвет и пробег.

У меня может быть текстовое поле, в котором отображается общий пробег всех автомобилей с использованием привязок в конструкторе интерфейса:

Значение - привязать к: 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 голосов
/ 12 сентября 2010

Не делайте много контроллеров.Я думаю, что наиболее элегантным решением было бы создать подкласс nsarraycontroller и каким-то образом добавить поддержку «упорядоченных объектов с предикатом»

0 голосов
/ 11 сентября 2010

Почему бы тогда не создать отдельный контроллер массива для каждого цвета машины? Или это тоже переменная?

Если цвета машины изменчивы, вероятно, лучшим способом будет сделать это программно.

...