0

Apple の Sketch アプリのソース コードで、私は何年にもわたってこのことについて頭を悩ませてきました。

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 に答える