[Solved] Re: NSTableView: no display until header clicked
[Solved] Re: NSTableView: no display until header clicked
- Subject: [Solved] Re: NSTableView: no display until header clicked
- From: David Hirsch <email@hidden>
- Date: Mon, 05 Oct 2009 10:19:48 -0700
That's right on the money: The array was indeed bound to the
contentArray in IB (otherwise it would never have been able to show
any data), but I needed to surround my populating of the array with:
[phaseController willChangeValueForKey:@"arrangedObjects"]
and
[phaseController didChangeValueForKey:@"arrangedObjects"];
Thanks,
Dave
On Oct 5, 2009, at 10:08 AM, Volker in Lists wrote:
Hi,
- have you bound contentArray of the ArrayController in IB?
- how do you populate with data?
In general: Bindings work by the magic of KVO (key value observing).
This means, that whenever calls to KVO compliant setters are made,
in the background willchangevalueforkey/didchangevalueforkey
messages are sent. That way the UI is informed of changes.
Rearrangecontet does that for the content value of a controller...
so you seemed to have populated the array controller in a non KVO
way... but still, w/o code not to be discussed.
Cheers,
Volker
Am 05.10.2009 um 18:47 schrieb David Hirsch:
Thanks, Volker. rearrangeObjects did work, but I don't understand
why that call should be necessary. If anybody out there wants to
educate me, I'd appreciate it.
(More info: I have my ArrayController in IB bound to an array
(phases) of File's Owner (which is my NSDocument subclass). In the
document's init method, I make phases an empty NSMutableArray, and
in the document's windowControllerDidLoadNib method, I populate
that array with data.)
-Dave
On Oct 5, 2009, at 9:40 AM, Volker in Lists wrote:
Hi,
without knowing how you add objects to the ArrayController - and
when, and without knowing what and how is bound exactly - guessing
is most that can be done.
It seems the bindings are okay from the beginning, but the changes
to the ArrayControllers content are only observed when the
sortOrder is changed. Maybe you need only a single
[NSArrayController rearrangeObjects] call or similar.
Volker
Am 05.10.2009 um 18:32 schrieb David Hirsch:
My window has two NSTableViews. Each has two columns, each of
which is bound to a field in Phases, an NSArrayController.
When my window is displayed, I calculate my model, and the
NSTableViews show the headers, but blank data cells. However,
when I click the header of one table, all four columns get
populated with data. As far as I can tell (I've set
breakpoints), this happens without calling any of my code. Note
that this only works if I click a text-based column. If I click
the column with image cells, I get no response, so presumably the
TableView is trying to sort the data on the click, and somehow
straightens out the previously mucked-up binding at that time.
I'm posting here without code to see if anybody has experienced
this before. It will be a major undertaking to reduce this
problem to a post-able amount of code.
I've tried making Phases (the NSArrayController) the data source
and delegate in addition to the column bindings, without solving
the problem. I've tried adding another NSTableView and binding
it to other columns to see if I had done it wrong the first
time. That did not help. The fact that the bindings do work
after the click seems to suggest that the binding setup is okay.
Thanks in advance,
Dave
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the
list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
============================
Dave Hirsch
Associate Professor
Department of Geology
Western Washington University
persistent email: email@hidden
http://www.davehirsch.com
voice: (360) 389-3583
aim: email@hidden
vCard: http://almandine.geol.wwu.edu/~dave/personal/DaveHirsch.vcf
============================
============================
Dave Hirsch
Associate Professor
Department of Geology
Western Washington University
persistent email: email@hidden
http://www.davehirsch.com
voice: (360) 389-3583
aim: email@hidden
vCard: http://almandine.geol.wwu.edu/~dave/personal/DaveHirsch.vcf
============================
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden