我正在开发一款显示SwiftUI中所有可用功能的应用程序。作为其中的一部分,我想显示所有可用的SF符号。我想知道是否有一种方法可以轻松完成(无需键入所有名称/变体(。
感谢
您可以从SF Symbols应用程序中复制它们(cmd+A
用于选择所有名称,cmd+shift+c
用于复制所有名称,粘贴到文本文件中,并轻松将名称重构为Image(systemName: "NAME")
。
以下是实现的方法。此代码在通过应用商店审查过程时无任何形式的担保。
if let sfSymbolsBundle = Bundle(identifier: "com.apple.SFSymbolsFramework"),
let bundlePath = sfSymbolsBundle.path(forResource: "CoreGlyphs", ofType: "bundle"),
let bundle = Bundle(path: bundlePath),
let resourcePath = bundle.path(forResource: "symbol_search", ofType: "plist"),
let plist = NSDictionary(contentsOfFile: resourcePath) {
/// keys in plist are names of all available symbols
}
上面的答案不起作用,但它有助于我找到一个起作用的解决方案(至少对Mac来说是这样(。
if let bundle = Bundle(identifier: "com.apple.CoreGlyphs"),
let resourcePath = bundle.path(forResource: "symbol_search", ofType: "plist"),
let plist = NSDictionary(contentsOfFile: resourcePath) {
// use the plist to access the symbol where the key is the symbol string and value is a list of key words
}