А если так, как?
Это кажется очень полезной вещью, которую можно сделать, но я не могу на всю жизнь понять это или найти какую-либо информациюв сети!
Конкретная ситуация, которую я имею в виду, это то, что у меня есть две смежные таблицы, в левой сначала содержится список имен, затем я хочу «переместить влево» и кнопку «переместить вправо», чтобы переместить именас одного стола на другой.
Я подумал, что элегантным решением этой проблемы было бы использование одного контроллера массива с двумя ключами контроллера "layoutLeftObjects" и builtRightObjects "
Я схожу с ума здесь! Может кто-то, пожалуйста, пролить светЯ опубликую пример кода по запросу.
Большое спасибо
EDIT: начальные попытки
Подкласс NSArrayController реализован (пока) таким образом:
@interface LeftRightArrayController : NSArrayController {
NSArray * leftObjects;
}
-(NSArray *)leftObjects;
-(void)setLeftObjects:(NSArray *)newLeftObjects;
@end
@implementation LeftRightArrayController
-(NSArray *)leftObjects {
return leftObjects;
}
-(void)setLeftObjects:(NSArray *)newLeftObjects {
leftObjects = newLeftObjects;
}
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
[self setLeftObjects:[NSArray arrayWithArray:[self arrangedObjects]]];
[super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
}
@end
И данные, предоставляемые контроллеру:
[myArrayController addObserver:myArrayController forKeyPath:@"arrangedObjects" options:0 context:NULL];
NSString *myKey = [NSString stringWithString:@"name"];
NSDictionary *myNewDictionary1 = [NSDictionary dictionaryWithObject:@"date1" forKey:myKey];
NSArray *myArray = [NSArray arrayWithObjects:myNewDictionary1, nil];
[myArrayController setContent:myArray];
Этот код работает, когда я только привязываюсь к «Left Right Array Controller.arrangedObjects.name», но обрывается, как толькоЯ пытаюсь привязаться к «Left Right Array Controller.leftObjects.name»