On the Mac, toggle or switch widgets aren't very common, yet. On iOS, you don't see lots of checkboxes. This article on UX Movement points out that switches are for immediate actions while changes to checkboxes require a submit button to be pressed.
Now I think about preference panes in Mac apps. They usually perform changes to
NSUserDefaults immediately. But using switches on a Mac still feels wrong. Maybe just because I'm not used to it, but still.
macOS's Notification Center has a switch to toggle "Do not Disturb". It works, but I don't use it a lot, so there's not much opportunity to get accustomed to it.
Check boxes in AppKit are realized with buttons. The API reads kind of weird, so here's a simple subclass: Now it's easy to use
checkbox.checked = true. I'd even consider
uncheck() methods if I used this in many places to reduce the noise and clarify what's going on.
Continue reading …