Macos 为Mac上基于电子的应用程序提供不同的停靠和托盘图标?

Macos 为Mac上基于电子的应用程序提供不同的停靠和托盘图标?,macos,electron,macos-catalina,dock,tray,Macos,Electron,Macos Catalina,Dock,Tray,我做了一些研究,到目前为止只找到了关于模板图像的资源,但没有明确的指南。我正在构建一个电子应用程序(Electron 8.0)。我有定制的暗色和常规模式图标 我知道我可以提供如下高dpi图标: tray_icon.png 托盘_icon@2.png 它与Dock图标的icns文件类似。我想知道我是否可以对暗模式图标和常规模式图标做同样的操作 我需要如何准备/命名我的图标,以便macOS Catalina为托盘和码头拾取不同的图标,无论它是在常规模式还是在黑暗模式下运行 我是否需要实现一些逻辑

我做了一些研究,到目前为止只找到了关于模板图像的资源,但没有明确的指南。我正在构建一个电子应用程序(Electron 8.0)。我有定制的暗色和常规模式图标

我知道我可以提供如下高dpi图标:

  • tray_icon.png
  • 托盘_icon@2.png
它与Dock图标的
icns
文件类似。我想知道我是否可以对暗模式图标和常规模式图标做同样的操作

我需要如何准备/命名我的图标,以便macOS Catalina为托盘和码头拾取不同的图标,无论它是在常规模式还是在黑暗模式下运行


我是否需要实现一些逻辑以编程方式切换图标?当我的Electron应用程序未运行但主题已切换时,如何执行此类逻辑?

以编程方式,这很容易实现

const{nativeTheme}=require('electron'))
nativeTheme.on('updated',函数的主题已更改(){
updateMyAppTheme(nativeTheme.shouldUsedarkColor)
})
//在此处设置托盘和码头图像
函数updateMyAppTheme(isDark){
托盘.设置图像(isDark?暗光线图像路径:lightTrayImagePath)
dock.setIcon(isDark?darkDockImagePath:lightDockImagePath)
}
相关文件:


谢谢!这些链接也是我找到的。编程是唯一的方法吗?当我的应用程序未运行时,如何执行脚本并切换Dock图标?一定有更好的办法。看看,他们似乎没有提到这件事。你知道有什么应用程序能做到这一点吗(即使应用程序死了,也要更改dock图标)?我发现这似乎意味着可以在Xcode中捆绑不同的外观。但我不认为电子应用程序可以做到这一点。进一步的讨论和研究似乎表明,在macOS上并没有一种真正的声明式实现方法。