Re: Enabled Binding bound to NSArrayController won't disable view.
Re: Enabled Binding bound to NSArrayController won't disable view.
- Subject: Re: Enabled Binding bound to NSArrayController won't disable view.
- From: Ben Lachman <email@hidden>
- Date: Sun, 17 Feb 2008 23:06:49 -0500
After banging my head against this for another couple hours I decided
just to do the enabling/disabling UI changes manually. It seems that
setEnable is being called just like it should be on the table view,
its just that the tableview isn't responding "correctly". So I now
stop accepting first responder, deselect any selected row, ignore
scrolling and turn off the scrollers, and draw the text of the cells
using a light gray text color when the textview is disabled. To do
this I have to subclass both the tableview and its enclosing
scrollview and define a delegate (to change the text color and ignore
selection of table rows when the table doesn't accept first
responder... not sure about that one). Seems like NSTableView should
do this for you when you disable it...
Anyone have any thoughts on this?
->Ben
--
Ben Lachman
Acacia Tree Software
http://acaciatreesoftware.com
email@hidden
740.590.0009
On Feb 17, 2008, at 2:58 PM, Ben Lachman wrote:
Thanks Jeff.
That solution worked perfectly for almost everything. I have
several other pieces of my UI that are all bound in this manner and
they all are enabled/disabled correctly. However the tableview
itself is seemingly still unaffected by it's enabled binding. In
fact, even if I stick in a vanilla table view and bind its enabled
binding, it doesn't seems to work, so now I'm wondering if the
enabled binding even works on table views. Can anyone verify this?
On Feb 17, 2008, at 9:37 AM, Jeff Johnson wrote:
Ben, check out the thread at <http://lists.apple.com/archives/
Cocoa-dev/2007/Aug/msg01021.html> for ideas. It's not precisely
the same problem discussed there, but it's essentially the same.
The most robust solution is given by mmalc, and there are also a
few quick and dirty hacks.
The NSArrayController's selection is a proxy object, so it won't
behave exactly as you expect, and you don't want to treat it as if
it were a normal object. In particular, I don't think it will
ever be nil.
On Feb 17, 2008, at 2:10 AM, Ben Lachman wrote:
I have a tableview who's enabled binding is bound to a
NSArrayController (not the one that feeds it via its content
binding). I'd like to be enabled when something is selected and
disabled when it is not. So far I've been unable to find a
suitable key to bind to on the array controller. It seems like
you should just be able to bind to selection with the NSIsNotNil
value transformer and set the correct placeholder options, but
apparently this doesn't work. I've tried various combinations of
selection and selectedObject with and without the NSIsNotNil
value transformer, but they don't change the view's state at all
and most of the combinations kick back nasty bindings error. I
should also note that the array controller that feeds the data to
this tableview is itself fed from coredata.
Anyone gotten something like this to work?
_______________________________________________
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