Re: NSTableView: no display until header clicked
Re: NSTableView: no display until header clicked
- Subject: Re: NSTableView: no display until header clicked
- From: Volker in Lists <email@hidden>
- Date: Mon, 5 Oct 2009 19:08:10 +0200
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
============================
_______________________________________________
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