>> After being impressed with bindings for an NSTableView, I’m looking at what 
>> I can do for a standalone NSPopupButton, in the hope of reducing the amount 
>> of glue code I have. The button isn’t just a simple one though, I need to:
>> - Include separator items
>> - Disable (grey out) some items
>> - Select multiple items (it’s configured as a pull-down menu)
>> 
>> It’s not obvious to me that there’s a way of doing any of those things with 
>> bindings (though the multiple-selected-items might work somehow through the 
>> array controller). Can anyone advise on whether there is any hope for this 
>> approach, or do I have to accept that this is more than the bindings are 
>> intended to help with?
> 
> Short answer, yes. With some hackery you could get separator items, but the 
> multiple checked state will likely require as much work as your glue code. So 
> I wold say the best approaches are a 50/50 between bindings and glue. That 
> is, you could use bindings for content, but manually handle state, or use 
> bindings for state, and manually handle content. Doing both is probably an 
> exercise in futility.

Thanks for confirming! Out of interest, could you describe the hackery you have 
in mind for separators? It might still be helpful to bind the menu item titles 
to an array.

As for manually handing state (if I were to use bindings for content), would 
the NSMenuDelegate method menu:updateItem:atIndex:shouldCancel: be the 
appropriate place to determine which items are checked, enabled, etc? In my 
all-manual version, I keep track of when the user checks/unchecks individual 
items through an action on the NSMenuItem. I'm going to have to do something 
else if the item list is bound to an array - any suggestions about the most 
appropriate place to identify when the selection changes?
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to