1

次のようにして、NSTreeControllerのselectionIndexPathsにプログラムでバインドしたい(文字列を選択してテキストビューに表示できるようにするため)

[activePDFView bind:@ "name" toObject:treeController withKeyPath:@ "selectionIndexPaths.nodeName" options:options];

ツリーコントローラーは、「nodeName」プロパティを持つオブジェクトを含むNSMutableArrayにバインドされています。NSMutableArray内のオブジェクトは、適切なアクセサーを実装したため、プロパティ「nodeName」に対してKVCに準拠しています。

コンパイルすると、次のメッセージが表示されます

'[<__ NSArray0 0x1001698d0> addObserver:forKeyPath:options:context:]はサポートされていません。キーパス:nodeName '

よくわかりませんが、バインディングは正しいですか?

ありがとう。

4

1 に答える 1

3

バインドしたいのはselectionIndexPathsではなく、selectionバインディングのようです。バインドはオブジェクトのselectionIndexPaths配列を返しNSIndexPathます。これは通常、アウトライン/ブラウザー ビューの選択をツリー コントローラーにバインドするときにのみ使用されます。 selection実際には、単一または複数の選択を表すことができるプロキシ オブジェクトを返し、基になる選択されたオブジェクトにすべての KVC 要求を渡します。NSObjectControllerのスーパークラスである で定義されていNSTreeControllerます。あなたの場合、あなたは望むでしょう:

[activePDFView bind:@"name" toObject:treeController withKeyPath:@"selection.nodeName" options:options];
于 2010-08-06T01:11:27.103 に答える