2009-08-30 4 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]; 

тогда я видеть значение первого столбца (который был вторым в первом примере) и снова «(«во втором столбце.Я не понимаю этого поведения.Как я могу связать два контроллера массива с одной таблицей?

ответ

1

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

prop1.someRealProp prop2.someRealPropOfSecondObject

 Смежные вопросы

  • Нет связанных вопросов^_^