如果是这样,怎么样?可可:NSArrayController可以分类以提供自定义的“控制器密钥”吗?
这似乎是一个非常有用的事情能够做到,但我不能为我的生活弄清楚或找到网上的任何信息!
我记住的具体情况是我有两个相邻的表格,左边最初包含一个名称列表,然后我要“向左移动”和“向右移动”按钮将名称从一个表格移动到另一个表格。
我想到了一个优雅的解决这个问题是使用一个阵列控制器有两个控制键“arrangedLeftObjects”和arrangedRightObjects”
我要在这里疯狂!有人可以提供一些线索。我会上张贴请求例如代码
非常感谢
编辑:初始尝试
的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];
此代码的工作时,我只绑定到“左,右阵列Controller.arrangedObjects.name” 但是作为休息尽快尝试绑定到“Left Right Array Controller.leftObjects.name”
发表你已经尝试过的例子。 – trudyscousin 2012-04-02 20:48:14
我已经把一些代码。它似乎像自定义控制器键将是一个有用的事情能够做到这一点,我看不到任何地方,所以我已经变得可疑。 – 2012-04-02 21:35:36