如果是這樣,怎麼樣?可可: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