Создание элемента массива со свойством, которое зависит от агрегатной функции самого массива

Предположим, у меня есть NSArrayController содержащий ряд объектов "blob". Эти объекты отображаются в представлении NSTableView через привязки.

Теперь предположим, что каждый объект "blob" содержит свойство с именем amount, Для одного из NSViews в каждой строке таблицы, которую я хотел бы отобразить amount / max_amount_in_array,

Другими словами, мне как-то нужно привязать свою клетку к NSArrayController"s arrangedObjects.@max.amount и к NSTableViewCell"s objectValue.amount заодно и выполню мой расчет.

Есть ли способ справиться с этим, используя привязки?

В настоящее время единственная идея, которую мне нужно, это иметь ratio свойство в 'blob' и сам пересчитываю его каждый раз, когда объект добавляется в массив. Это вполне возможно, но кажется, что для решения проблемы должен быть способ, похожий на привязку.

1 ответ

Решение

Я сейчас сделал это так:

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

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

Таким образом, в myView есть два свойства (количество и максимум), и когда любое из них изменяется, я делаю расчет и обновляю отображение соответственно.

Другие вопросы по тегам