Re: Modifying the array of an NSArrayController
Re: Modifying the array of an NSArrayController
- Subject: Re: Modifying the array of an NSArrayController
- From: René Puls <email@hidden>
- Date: Thu, 6 Nov 2003 20:36:37 +0100
Hello Henrik,
thanks for your quick reply. I think you pointed me in the right
direction, but I still didn't have any success.
NSControllers only register for changenotifications if you BIND to the
value you want the controller to observe.
Like the NSControll subclasses (NSTextField,NSButton,...) which you
would bind to somthing inside a NSController you have
to bind the "contentArray" binding of the NSArrayController;
If your NSArray is a property of your FilesOwner you can establish
this binding with IB.
Access to this property must be key value coding-compliant in your App.
Here is what I have now:
The "contentArray" key of NSArrayController is bound to the array
through the File's Owner, which is my NSDocument subclass. But again,
changes to the array are not reflected in the view until I use
[arrayController rearrangeObjects]. If I do call this method, the items
appear in the table view. So the binding must work--correct?
Just for fun, I tried to register as an observer for the array myself.
But what would be the correct key path to observe? I tried something
like:
[array addObserver:self forKeyPath:@"count"
options:NSKeyValueObservingOptionNew context:NULL];
But this will raise an exception:
<NSInvalidArgumentException> [<NSCFArray 0x3009a0>
addObserver:forKeyPath:options:context:] is not supported. Key path:
count
I get the feeling that what I am trying to is not really supported. Are
there any example applications which directly manipulate the array of
an NSArrayController? Or could it be possible that the designers never
intended it to work like that?
Kind regards,
Reni Puls
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.