请参阅问题标题。据我所知,在macOS项目上尝试使用NSImage(systemName: String)
语法时,它不支持。具体来说,我试图在工具栏项上使用它。
答案 0 :(得分:7)
SF Symbol现在可用于 macOS 11 。
SF符号在iOS 13和更高版本,macOS 11和更高版本,watchOS 6和更高版本以及tvOS 13和更高版本中可用。
这是您的用法:
NSImage(systemSymbolName: "hammer", accessibilityDescription: nil)
如果要支持macOS 10.15及更低版本,则必须使用SF Symbols Mac应用程序并将该符号导出为SVG,然后将其导入回到Xcode项目中的资产文件中。您可以从here获取该应用。
答案 1 :(得分:3)
macOS尚不支持SF Symbols(尚未)
但是您可以下载SF Symbols App并将所需的符号导出为独立图像。
答案 2 :(得分:1)
SF符号在macOS上不可用。根据Apple的人机界面指南:
您可以在运行iOS 13和更高版本的应用程序watchOS 6中使用SF符号 和更高版本,以及tvOS 13和更高版本。
答案 3 :(得分:0)
重要 在使用下面的代码之前,请阅读本文How to support San Francisco Fonts on old iOS app and macOS
Button(action: {}) {
Image(systemName: "star")
}
我为macOS制作Image
,如下所示
这就是在macOS上的样子
对于剪切/粘贴:
import SwiftUI
#if os(macOS)
struct Image: View {
let symbol: String
init(systemName: String) {
self.symbol = [
"speaker": "?",
"speaker.fill": "?",
"star": "☆",
"star.fill": "★"
][systemName] ?? "?" }
var body: some View {
Text(symbol)
}
}
#endif
答案 4 :(得分:0)
您还可以使用以下工具将符号从SF Symbols应用程序导出到SVG并将其转换为SwiftUI Shape:
答案 5 :(得分:0)
如果您的macOS版本是低于macOS 11 。
下载符号并导出所有符号https://www.xaprb.com/blog/2010/05/09/how-to-tune-mysqls-sort_buffer_size/
在Xcode项目中选择Assets.xcassets
将iconset文件夹作为新资产拖动到Xcode中的Assets.xcassets https://github.com/davedelong/sfsymbols
答案 6 :(得分:-1)
尚无法在macOS上使用SF符号。但是,您可以将此扩展名用作macOS的后备版本,因此您的代码将在多个平台上运行。
extension Image {
init(systemName: String) {
self.init("YOUR FALL BACK IMAGE(s)")
}
}