Apple的Sketch源代码NSArrayController绑定

时间:2013-08-01 20:38:13

标签: objective-c cocoa-bindings

我用它的Sketch应用程序的源代码已经把头发拉了好几年了,可以在这里找到:developer.apple.com/samplecode它们将NSArrayController绑定到NSDocument中的一个数组。

当他们在NSWindowController的NSView中执行此操作时:

[mutableGraphics insertObject:_creatingGraphic atIndex:0];

它在NSDocument中调用此代码:

- (void)insertGraphics:(NSArray *)graphics atIndexes:(NSIndexSet *)indexes {

我的问题是这是怎么做到的?我希望能够以编程方式执行此操作,这里似乎有某种魔力。

我正在绑定我的NSArrayController:

[_componentsController bind:NSContentArrayBinding toObject:self withKeyPath:@"document.components" options:NULL];

但我不知道它如何调用自定义方法。

再过几天,我的头发都会消失,任何指针/提示都会受到欢迎。

由于

克里斯

1 个答案:

答案 0 :(得分:0)

我想我已经弄明白了。 NSDocument类需要符合KVC,因此我需要以下方法:

- (NSArray *)components {
- (void)insertComponents:(NSArray *)components atIndexes:(NSIndexSet *)indexes
- (void)removeComponentsAtIndexes:(NSIndexSet *)indexes