简体   繁体   中英

MacOS Change menubar Icon using swift 4

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:

  1. open your asset catalog and add a new image asset.
  2. in the right side menu, click on the dropdown at Appearances :

在此输入图像描述

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM