开发者

Bind to NSTreeController selectionIndexPaths

开发者 https://www.devze.com 2023-01-10 05:21 出处:网络
I want to bind to a NSTreeController\'s selectionIndexPaths programatically by doing the f开发者_高级运维ollowing (so that I can get a string a selection and display in a text view)

I want to bind to a NSTreeController's selectionIndexPaths programatically by doing the f开发者_高级运维ollowing (so that I can get a string a selection and display in a text view)

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

The tree controller is bound to a NSMutableArray that contains objects with the "nodeName" property. The object inside the NSMutableArray is KVC compliant for the property "nodeName" since I've implemented the proper accessors.

When I compile, I get the following message

'[<__NSArray0 0x1001698d0> addObserver:forKeyPath:options:context:] is not supported. Key path: nodeName'

I am not quite sure but is my binding correct?

Thanks.


It looks like what you want to bind to is not selectionIndexPaths, but instead the selection binding. The selectionIndexPaths binding will return an array of NSIndexPath objects, which is typically only used when binding an outline/browser view's selection to the tree controller. selection actually returns a proxy object which can represent either a single or multiple selection, and passes through any KVC requests to the underlying selected object(s). It's defined in NSObjectController, which is a superclass of NSTreeController. In your case, you would want:

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

精彩评论

暂无评论...
验证码 换一张
取 消