2

Возможно ли связать NSTextfield только с одной конкретной записью в NSArray или NSSet/Relationship.Возможно ли связать «NSTextfield» с одной конкретной записью в NSArray или NSSet/Relationship

Я вижу возможность привязки к NSArrayController с использованием Control Key из filterPredicate, но что было бы Model Key Path?

Кроме того, в одном NSArrayController может быть много фильтров, либо методы, либо свойства.

ответ

1

Насколько я знаю, вы не можете привязываться к определенному объекту в наборе, потому что нет возможности последовательно выражать данный объект внутри набора. Единственный способ извлечения объекта из набора - anyObject. Для массивов это другое дело. Они могут быть проиндексированы их и привязки API позволяет это сделать:

// Edit: changed the code to use bindings directly instead of KVO 

[_textFild bind:NSValueBinding 
     toObject:array[indexToBindTo] 
    withKeyPath:@"firstName" 
     options:nil]; 

Вы не можете сделать это непосредственно в Interface Builder, так что должно быть сделано в коде.

+0

Я думал, что можно привязать к определенному объекту в наборе с использованием предиката, такого как «name like xxxx». но как моделировать ключевой путь. или, возможно, уйти. возможно, дополнительный контроллер с предикатом, установленным в fetchPredicate. –

+0

Если вы сами выбираете объекты, то вы можете просто добавить привязку программно, но KVC не поддерживает предикаты в ключевом пути (пути ключей не совпадают с предикатами). – aLevelOfIndirection

+0

, так что, возможно, вопрос плохо сформулирован. в ControlKey есть выбор «filterPredicate». Этот выбор даже требует ModelKeyPath. Можно ли просто называть это одним. Кажется, что привязки Cocoa используют имя свойства, например «firstName». Конечно, можно было бы предоставить тело метода для «firstName», которое в основном извлекает использование предиката. Во всяком случае, приветствия –