如何在 macOS Catalyst 应用程序中为 NSToolbar 设置暗模式?
How to set dark mode for NSToolbar in macOS Catalyst app?
在我的 iOS/macOS 应用中,用户可以选择浅色和深色外观。
这是通过设置应用程序的 overrideUserInterfaceStyle 来完成的 window,例如
window.overrideUserInterfaceStyle = .dark
它在 iOS/iPadOS 上工作正常。
在 macOS (Catalyst) 上,应用程序使用 NSToolbar,它始终以系统设置中选择的模式出现,无论为 window 的 overrideUserInterfaceStyle 设置了什么(参见屏幕截图)。
由于这不是一个好的视觉印象,我想知道如何也为 NSToolbar 设置 light/dark 模式。
将值为 Dark
的 UIUserInterfaceStyle
添加到您应用的 Info.plist。这将强制整个应用程序在 iOS 13+ 和 Mac Catalyst 上进入暗模式(您不需要设置 overrideUserInterfaceStyle)。
这可以通过添加一个可以访问整个 AppKit 的 macOS 插件来完成 API。说明可以在这里找到:
How to Access the AppKit API from Mac Catalyst Apps
然后您可以在运行时在那里设置所需的外观,例如:
NSApplication.shared.appearance = NSAppearance(named: .darkAqua)
在我的 iOS/macOS 应用中,用户可以选择浅色和深色外观。
这是通过设置应用程序的 overrideUserInterfaceStyle 来完成的 window,例如
window.overrideUserInterfaceStyle = .dark
它在 iOS/iPadOS 上工作正常。
在 macOS (Catalyst) 上,应用程序使用 NSToolbar,它始终以系统设置中选择的模式出现,无论为 window 的 overrideUserInterfaceStyle 设置了什么(参见屏幕截图)。
由于这不是一个好的视觉印象,我想知道如何也为 NSToolbar 设置 light/dark 模式。
将值为 Dark
的 UIUserInterfaceStyle
添加到您应用的 Info.plist。这将强制整个应用程序在 iOS 13+ 和 Mac Catalyst 上进入暗模式(您不需要设置 overrideUserInterfaceStyle)。
这可以通过添加一个可以访问整个 AppKit 的 macOS 插件来完成 API。说明可以在这里找到: How to Access the AppKit API from Mac Catalyst Apps
然后您可以在运行时在那里设置所需的外观,例如:
NSApplication.shared.appearance = NSAppearance(named: .darkAqua)