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

时间:2019-09-30 17:24:09

标签: swiftui

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

Button(action: {}) {
  Image(systemName: "star") //Error: 'init(systemName:)' is unavailable in macOS            
}

3 个答案:

答案 0 :(得分:2)

它从 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)
}

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

Text("?") // The symbol itself can not be shown on the markdown of the StackOverflow

Demo

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

答案 1 :(得分:1)

Apple's Human Interface Guidelines状态:

  

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

目前不支持Mac。 ☹️

答案 2 :(得分:0)

使用此代码之前,您应该先安装SF Symbols app

我为macOS制作Image,如下所示

enter image description here

这就是在macOS上的样子

enter image description here