'init(systemName:)' 在 macOS 中不可用

Vic*_*rov 10 swiftui

我想在我的 macOS 项目中使用 SF Symbols。如何实施?

Button(action: {}) {
  Image(systemName: "star") //Error: 'init(systemName:)' is unavailable in macOS            
}
Run Code Online (Sandbox Code Playgroud)

Moj*_*ini 5

它从macOS 11 beta 或更高版本开始支持,然后它照常工作,否则您必须导出模板并将其导入资产目录,然后您才能将其用作普通图像。所以:

if #available(OSX 11.0, *) {
    Image(systemName: "trash.fill")
} else {
    Image("trash.fill") // Imported as a supporting format like PDF (not SVG)
}
Run Code Online (Sandbox Code Playgroud)

另一种方法是直接在文本中使用符号:

Text("") // The symbol itself can not be shown on the markdown of the StackOverflow
Run Code Online (Sandbox Code Playgroud)

演示

请记住,您应该将字体嵌入到您的应用程序中,或者目标位置应该安装了 SF Symbols App


Joh*_* M. 3

Apple 的人机界面指南指出:

\n\n
\n

您可以在 iOS 13 及更高版本、watchOS 6 及更高版本以及 tvOS 13 及更高版本中运行的应用程序中使用 SF Symbols。

\n
\n\n

目前不支持 Mac。\xe2\x98\xb9\xef\xb8\x8f

\n