2013-08-01 1 views
0

Я долгое время вытягивал свои волосы на протяжении этого времени, в исходном коде Apple для своего приложения Sketch, доступном здесь: developers.apple.com/samplecode, они привязывают NSArrayController к массиву в NSDocument.Эскиз от Apple Исходный код NSArrayController Binding

Когда они делают это в NSView из NSWindowController:

[mutableGraphics insertObject:_creatingGraphic atIndex:0]; 

он называет этот код в NSDocument:

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

Мой вопрос, как это делается? Я хочу, чтобы иметь возможность делать это программно, здесь, кажется, какая-то магия.

Я связывание моего NSArrayController так:

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

Но я понятия не имею, как это вызывает пользовательский метод.

Еще пару дней на этом и все мои волосы исчезнут, любые указатели/подсказки очень приветствуются.

Благодаря

Chris

ответ

0

Я думаю, что я понял это. Класс NSDocument должен был соответствовать требованиям KVC, поэтому мне нужны были следующие методы:

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

 Смежные вопросы

  • Нет связанных вопросов^_^