0

多年来,我一直在努力解决这个问题,在 Apple 的 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];

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

再过几天,我所有的头发都会消失,非常欢迎任何指示/提示。

谢谢

克里斯

4

1 回答 1

0

我想我已经想通了。NSDocument 类需要与 KVC 兼容,因此我需要以下方法:

- (NSArray *)components {
- (void)insertComponents:(NSArray *)components atIndexes:(NSIndexSet *)indexes
- (void)removeComponentsAtIndexes:(NSIndexSet *)indexes
于 2013-08-02T21:36:06.467 回答