开发者

Cocoa Bindings + NSArray + custom class

开发者 https://www.devze.com 2023-02-08 16:19 出处:网络
I can\'t get my head around this: I have an instance of NSMutableArray filled with custom Lessonobjects. These objects have two properties: name and selected. I\'m trying to use these Lesson objects i

I can't get my head around this: I have an instance of NSMutableArray filled with custom Lesson objects. These objects have two properties: name and selected. I'm trying to use these Lesson objects in an NSTableView. One column should show the name as a string, the other selected as check box. I used the

- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex

method to return the name, which worked fine, however returning the value of selected doesn't work as expected - probably because the method gets called too often.

SO, can this be solved easily using the data source method or should I use Interface Builder and set up some bindings? 开发者_Go百科The latter sounds better, however I don't know how I could bring my setup - NSArray with custom objects - into IB.

I would appreciate some ideas, Fabian


It seems that bindins would work pretty good in your case. You should use a NSArrayController binding to your array of Lesson's objects, lets call it "lessonsArray". Select the NSArray controller and set its "Model Key Path" to "lessonsArray". You must to create setter and getter to the "lessonsArray", otherwise it won't work.

Once you have put bindings to the NSArrayController, you have to bind the your NSTableView to it. In the reality, what you really need to bind now is the NSTableColumns, and I suppose you have two: name and selected. Bind them to the NSArrayController with this configuration: Controller Key: arrangedObjects Model Key Path: name or selected.

I hope that I've understood and helped you. Good luck

0

精彩评论

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