我有NSTableView,其中有两列:
NSTableColumn *column = [[[NSTableColumn alloc] initWithIdentifier:@"custId"] autorelease];
[column bind:@"value" toObject:arrC2 withKeyPath:@"arrangedObjects.custId" options:nil];
[table addTableColumn:column];
column = [[[NSTableColumn alloc] initWithIdentifier:@"totalGrams"] autorelease];
[column bind:@"value" toObject:valuationArrC withKeyPath:@"arrangedObjects.totalGrams_double" options:nil];
[table addTableColumn:column];
如您所见,列绑定到不同的NSArrayControllers。第一列显示正确的值,但第二列只显示“(”符号。但如果我像这样交换列:
NSTableColumn *column = [[[NSTableColumn alloc] initWithIdentifier:@"totalGrams"] autorelease];
[column bind:@"value" toObject:valuationArrC withKeyPath:@"arrangedObjects.totalGrams_double" options:nil];
[table addTableColumn:column];
column = [[[NSTableColumn alloc] initWithIdentifier:@"custId"] autorelease];
[column bind:@"value" toObject:arrC2 withKeyPath:@"arrangedObjects.custId" options:nil];
[table addTableColumn:column];
然后我看到第一列的值(在第一个例子中是第二列)和再次“(”在第二列中。我不明白这种行为。我如何将两个数组控制器绑定到一个表?
答案 0 :(得分:1)
我发现,将几个控制器绑定到一个视图是不可能的。可能的解决方案是创建一个“代理”对象,它具有多个属性,然后将此对象与类似
的键路径绑定prop1.someRealProp prop2.someRealPropOfSecondObject