隨着Swift 3.0,您可以使用UserDefaults訪問macOS外觀或「AppleInterfaceStyle」,使用以下代碼:
let mode = UserDefaults.standard.string(forKey: "AppleInterfaceStyle")
如果用戶啓用了暗模式,則默認值將返回一個字符串「Dark」。如果他們啓用了「燈光模式」,它將返回零。所以,你需要包裝,在下面的代碼:
if UserDefaults.standard.string(forKey: "AppleInterfaceStyle") == "Dark" {
statusItem.image = NSImage(named: "WhiteIcon")
} else {
statusItem.image = NSImage(named: "BlackIcon")
}
我敢肯定,有可能是一個更清潔的方式,也許有保護,但你需要在雨燕3.0
,將讓你
編輯:
上述代碼將確定用戶當前的「模式」。但是,使用簡單的用戶首選項檢查不會導致正確的行爲(例如,它只會在應用程序啓動時觸發)。
執行此操作的正確方法是將菜單圖標設置爲黑色圖標。然後,瀏覽到資產目錄中的資產,然後選擇菜單圖標。選擇該菜單後,瀏覽到屬性檢查器,並確保使用「Mac」設備檢查圖像。然後選擇「渲染爲」設置爲「模板圖像」。
這隻需要你有一個黑色的圖標,macOS會處理圖像從黑暗模式到光照模式的轉換。