Re: Confused about bindings and NSTableView
Re: Confused about bindings and NSTableView
- Subject: Re: Confused about bindings and NSTableView
- From: Kevin Callahan <email@hidden>
- Date: Wed, 8 Dec 2004 10:03:47 -0800
On Dec 8, 2004, at 9:54 AM, Frédéric Testuz wrote:
Le 8 déc. 04, à 17:30, Juan Pablo Pertierra a écrit :
So, i have a table view which is bound to an NSMutableArray. I have
followed the same bindings used in:
http://developer.apple.com/samplecode/Fiendishthngs/Fiendishthngs.html
However in this example they access the array directly, and they seem
to add objects to the table with [array addObject:object], which
works when the application is compiled. When i attempted this, the
table wouldn't refresh correctly and i had to implement insertObject:
at<key>AtIndex and removeObjectFrom<Key>AtIndex methods.
I think it's normal that addObject: don't notify for the modification.
Otherwise there would be no method to modify a mutable array without
notification. There would be a recursiv problem.
To add an object and the observer to be notify access your mutable
array with the set/get method you define or through the result of
mutableArrayValueForKey:
exemple : if you have a NSDocument sublaclass MyDocument with an ivar
myMutableArray, inside one of the MyDocument method :
theArray=[self mutableArrayValueForKey:@"myMutableArray"];
[theArray addObject:anObject];
The document said that mutableArrayValueForKey: return an
NSMutableArray, but IIRC it's a proxy to the array.
Now my table will refresh and items are added, but I get an error:
*** Illegal NSTableView data source (<MyController: 0x3391a0>). Must
implement numberOfRowsInTableView: and
tableView:objectValueForTableColumn:row:
I don't get it. I can't figure out why in the Apple sample listed
above they can just access the array directly, while my table won't
refresh if I do it. I used bindings in the same way. And if I have
to implement numberOfRows... and objectValyeForTable... methods, why
use bindings anyway??? I thought bindings were supposed to take care
of all this code. Do I really need the insertObject: and
removeObject.. methods if i'm using bindings? And if so why aren't
these methods implemented in the Apple sample?
Thanks for your time, this list is invaluable.
Juan <confused look>
--
Frédéric Testuz
<mailto:email@hidden>
I suggest looking here:
<http://homepage.mac.com/mmalc/CocoaExamples/controllers.html>
<http://developer.apple.com/documentation/Cocoa/Reference/
CocoaBindingsRef/index.html>
-Kevin
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden