With the new Dark mode in MacOS Mojave I would like to change the menubar icon of my app. In default, it is a white black bear and rather than just inverting the colors I would like to use an icon of a snoozing bear.
I have all my code that sets up the menubar icon in AppDelegate
in applicationDidFinishLaunching
. So my question is: Is there a way to check if the dark mode was activated and then change the icon using swift 4?
I tried:
var inDarkMode: Bool {
let mode = UserDefaults.standard.string(forKey: "AppleInterfaceStyle")
return mode == "Dark"
}
and then an if statement around
button.image = NSImage(named: NSImage.Name(rawValue: "StatusBarButtonImage"))
but because the code is in applicationDidFinishLaunching
this will only check once.
Any help much appreciated.
As pointed to by Leo in the comments, Apple's docs explain the process clearly:
It should be Any by default, change it to Any, Dark, or Any, Light, Dark to customize the icons you want to use for each case.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With