2009-08-30 63 views
1

我有NSTableView的兩列在裏面:NSTableView的綁定到不同的NSArrayControllers列

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]; 

然後我看到第一列的值(這是第二位的第一個例子),並再次「( 「在第二列中。我不理解該行爲。我怎樣才能結合2個陣列控制器到一個表?

回答

1

如我發現,幾個控制器結合一種觀點是不可能的。可能的解決方案是創建一個「代理」對象,它具有多個屬性,然後將此對象與類似於以下路徑的關鍵字綁定:

prop1.someRealProp prop2.someRealPropOfSecondObject