在 Swift 中以编程方式将系统图像设置为 NSImageView

unk*_*own 6 macos nsimage swift sf-symbols

您可以在 UIKit 中设置系统映像(SF Symbol)UIImage(systemName: "pencil")。对于 macOS 应用程序,您可以在 Storyboard 中设置系统映像。但是,我找不到以编程方式为 macOS 设置系统映像的方法。那么这是否可能,或者系统映像仅限于 macOS 应用程序中的情节提要。

imageView.image = NSImage(named: "pencil") //result is no image
Run Code Online (Sandbox Code Playgroud)

jn_*_*pdx 8

调用签名是NSImage(systemSymbolName:accessibilityDescription:)( https://developer.apple.com/documentation/appkit/nsimage/3622472-init ),而不是NSImage(named:),它尝试从您的应用程序包中获取图像 - 而不是 SF Symbols。

例子:

NSImage(systemSymbolName: "pencil", accessibilityDescription: nil)
Run Code Online (Sandbox Code Playgroud)

请注意,这仅适用于 macOS 11.0 (Big Sur) 及更高版本。在此之前,除非通过 Catalyst,否则 SF Symbols 不可用于 Mac 应用程序。