• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Mixed-state checkboxes
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Mixed-state checkboxes


  • Subject: Re: Mixed-state checkboxes
  • From: Quincey Morris <email@hidden>
  • Date: Fri, 08 Jul 2016 10:35:45 -0700
  • Feedback-id: 167118m:167118agrif8a:167118shq7FCTSi2:SMTPCORP

On Jul 8, 2016, at 05:36 , Jonathan Taylor <email@hidden> wrote:
>
> My setter code currently looks like this:
>
> -(void)setGlobalChannelEnableState:(NSInteger)state

In the circumstances you describe, a setter method is effectively an action method, not a setter — that is, it becomes a method that’s called when your code needs to do something, rather than a way to set some state. As you’ve found, the real setter method tends to work against you here, because you have to figure out what the binding expects with the changed value it thinks it’s setting.

So, I think a cleaner approach is to leave out the setter method entirely, and use a real action method instead. With no setter, the binding won’t try to update the property, it’ll basically be read-only. When the checkbox is clicked, the action method is still invoked — it’s a NSButton, after all. All the action method has to do is retrieve the current global state via the getter, then set the individual states needed to flip it, sandwiched between one pair of will/didChange calls for the key “globalChannelEnableState”.

You don’t need to dispatch anything to a later iteration of the main event loop. (Even in your current code — the setter will automatically generate the KVO notification, so doing it again later is redundant.)

_______________________________________________

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


  • Follow-Ups:
    • Re: Mixed-state checkboxes
      • From: Jonathan Taylor <email@hidden>
References: 
 >Mixed-state checkboxes (From: Jonathan Taylor <email@hidden>)

  • Prev by Date: Re: Emailing from a daemon process
  • Next by Date: Re: Mixed-state checkboxes
  • Previous by thread: Mixed-state checkboxes
  • Next by thread: Re: Mixed-state checkboxes
  • Index(es):
    • Date
    • Thread