electron **功能请求** :将SFSymbols用作nativeImage的源

mzsu5hc0  于 4个月前  发布在  Electron
关注(0)|答案(4)|浏览(66)

预检清单

问题描述

SFSymbols 是 macOS 原生图标,由 3k+ 高质量图标组成。目前似乎没有办法在为 macOS 构建的 Electron 应用中使用它们。

在 swiftUI 中使用它们是轻而易举的。

Image(systemName: "square.and.pencil")

建议解决方案

例如:

nativeImage.fromSFSymbolName("square.and.pencil")

考虑过的替代方案

可以使用 MacOS 原生应用程序 "SF Symbols" 将 SFSymbols 导出为 PNG,但这是一个相当手动的过程。

其他信息

  • 无响应*
falq053o

falq053o1#

这是在macOS 11.0及更高版本上可能的。重要的是要指出,如果你的应用程序实现了这个功能,你的应用程序将不得不为这些符号提供平滑的回退,无论多长时间。

uajslkp6

uajslkp62#

此外,SFSymbol许可不允许在非苹果平台上使用它们,因此Electron做类似捆绑的事情是没有意义的。即使你使用了SFSymbols,也无法使用它们来制作跨平台的Electron应用程序。

daolsyd0

daolsyd03#

我同意你关于这个不是跨平台的,并且只在macOS 11或更高版本上工作的观点。
然而,我相信在许多情况下,开发者都意识到并接受这些限制。
SF Symbols目前是macOS平台上相当“核心”的“原生体验”,并且在原生macOS开发中被广泛使用。
我也认为许多electron开发者只为一个平台创建。
因此,我认为这可以添加到Electron(特别是因为它似乎相对简单地原生实现)。已经有一些类似的electron API,如https://www.electronjs.org/docs/latest/api/touch-bar,它们具有非常相似的约束。
这样一个API nativeImage.fromSFSymbolName 将被标记为MacOS 11+,并且由开发者决定是否可以使用它以及如何提供回退。

ffscu2ro

ffscu2ro4#

Electron已经有一个类似的原生图像API:createFromNamedImage。
在我看来,将这个API扩展以支持sf符号也是值得的。
它已经被标记为仅适用于macOS,并且不需要引入新的API - 只需要扩展当前的实现。
根据我有限的Objective-C知识,这可以在以下函数中轻松完成:NativeImage::CreateFromNamedImage。

相关问题