预检清单
- 我已阅读了此项目的 Contributing Guidelines。
- 我同意遵循此项目遵循的 Code of Conduct。
- 我已在 issue tracker 中搜索了一个与我想提交的功能请求相匹配的功能请求,但没有成功。
问题描述
SFSymbols 是 macOS 原生图标,由 3k+ 高质量图标组成。目前似乎没有办法在为 macOS 构建的 Electron 应用中使用它们。
在 swiftUI 中使用它们是轻而易举的。
Image(systemName: "square.and.pencil")
建议解决方案
例如:
nativeImage.fromSFSymbolName("square.and.pencil")
考虑过的替代方案
可以使用 MacOS 原生应用程序 "SF Symbols" 将 SFSymbols 导出为 PNG,但这是一个相当手动的过程。
其他信息
- 无响应*
4条答案
按热度按时间falq053o1#
这是在macOS 11.0及更高版本上可能的。重要的是要指出,如果你的应用程序实现了这个功能,你的应用程序将不得不为这些符号提供平滑的回退,无论多长时间。
uajslkp62#
此外,SFSymbol许可不允许在非苹果平台上使用它们,因此Electron做类似捆绑的事情是没有意义的。即使你使用了SFSymbols,也无法使用它们来制作跨平台的Electron应用程序。
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+
,并且由开发者决定是否可以使用它以及如何提供回退。ffscu2ro4#
Electron已经有一个类似的原生图像API:createFromNamedImage。
在我看来,将这个API扩展以支持sf符号也是值得的。
它已经被标记为仅适用于macOS,并且不需要引入新的API - 只需要扩展当前的实现。
根据我有限的Objective-C知识,这可以在以下函数中轻松完成:NativeImage::CreateFromNamedImage。