绑定到NSTreeController selectionIndexPaths

时间:2010-08-05 21:37:54

标签: objective-c cocoa binding bind nstreecontroller

我希望通过执行以下操作以编程方式绑定到NSTreeController的selectionIndexPaths(这样我就可以在文本视图中获取一个字符串并显示)

  

[activePDFView bind:@“name”   toObject:treeController   withKeyPath:@ “selectionIndexPaths.nodeName”   选项:选项];

树控制器绑定到包含具有“nodeName”属性的对象的NSMutableArray。由于我已经实现了正确的访问器,因此NSMutableArray中的对象与属性“nodeName”符合KVC。

编译时,我收到以下消息

  

'[< __ NSArray0 0x1001698d0>   的addObserver:forKeyPath:选项:背景:]   不受支持。密钥路径:nodeName'

我不太确定但我的约束是否正确?

感谢。

1 个答案:

答案 0 :(得分:2)

看起来您要绑定的内容不是selectionIndexPaths,而是selection绑定。 selectionIndexPaths绑定将返回NSIndexPath个对象的数组,通常仅在将大纲/浏览器视图的选择绑定到树控制器时使用。 selection实际上返回一个代理对象,该代理对象可以表示单个或多个选择,并将任何KVC请求传递给基础选定对象。它在NSObjectController中定义,它是NSTreeController的超类。在您的情况下,您需要:

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