Re: button cell - selection change timing
Re: button cell - selection change timing
- Subject: Re: button cell - selection change timing
- From: Rainer Standke <email@hidden>
- Date: Mon, 28 Dec 2009 11:22:06 -0800
Thanks Paul, you were right about going for the clicked row. When I
get that and then ask the array controller behind the table view for
the object at the index of the clickedRow I get what I was looking for.
Matt's suggestion to use delays didn't work because the selection in
the table view seems to not change until the method triggered by the
button cell has finished running.
Thanks everyone for you patience with a newbie,
Rainer
On Dec 27, 2009, at 18:38 , Paul Bruneau wrote:
On Dec 27, 2009, at 9:21 PM, Rainer Standke wrote:
Sure. Here is what happens in the method targeted by the button.
From the tableview ( = sender) it gets the first column, from that
it gets the array controller behind the column, from that it gets
the selection and finally it gets the string I am after. All of
this is in a core data app, and I am not using a data source per
se. The problem seems to be the timing of it all, rather than how
the method works, because when the selection doesn't change in the
button click, everything is fine.
//get 1st column in sender:
NSTableColumn *tableColumn = [[sender tableColumns] objectAtIndex:
0];
// get bound-to array controller
NSArrayController *arrayController = [[tableColumn
infoForBinding:@"value"] valueForKey:@"NSObservedObject"];
// get selected object's URL:
NSString *selectedPersonPage = [[arrayController selection]
valueForKey:@"URLFragment"];
NSLog(@"selectedPersonPage: %@", selectedPersonPage);
I must admit some ignorance of core data apps, but maybe that won't
matter much. From what you said, sender is the tableview, so that is
the same thing I would expect in a non-core-data app that I have
more experience with.
You concern me with this statement of yours:
The problem seems to be the timing of it all, rather than how the
method works, because when the selection doesn't change in the
button click, everything is fine.
It's not that everything is fine. It's that in your test case (where
the selected row equals the clicked row), the thing that you are
looking at (the selected row) just happens to be the same as what
you want (the clicked row).
So if you will accept that what you want is the clicked row, and you
don't really care about the selected row(s), see what happens if you
use [sender clickedRow] to get the clicked row, then from there to
get your URL. Maybe -clickedColumn can help you too (your code has
lost me a bit so I can't say for sure)
Hopefully my ignorance of core data isn't wasting your time. If it
wasn't a holiday weekend (or even week) here in the states, I'd
probably lurk this one out.
_______________________________________________
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