You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于SF Symbol生成macOS系统风格的动态NSImage图标?

问题:创建适配macOS系统样式的自定义SF Symbol动态图标

我正尝试通过编程创建基于SF Symbols的自定义动态NSImage图标,要让它的外观和行为完全和macOS系统设置里的图标一致——也就是把SF Symbol放在带颜色的圆角矩形容器中央。理想状态下,这些自定义图标不用手动管理状态,就能自动适配当前系统的图标和组件样式(普通/深色/透明/着色)。

苹果在macOS系统设置里是结合SF Symbol名称和ISGraphicIconConfiguration字典来实现动态图标的,这类图标会自动适配当前系统的图标及组件样式(普通/深色/透明/着色)。比如我用NSWorkspace.shared.icon(forFile: url.path)方法获取Safari这类应用包的图标时,就能拿到对应样式的图标。

注意:我不是要直接获取SF Symbol图片,而是要生成基于SF Symbol的容器式图标,不需要用NSImage(systemSymbolName:)方法。

我可以通过以下命令读取当前系统的图标配置:

x@MacBook-Pro-M1 CoreServices % defaults read -g | grep Dark
    AppleIconAppearanceTheme = RegularDark;
    AppleInterfaceStyle = Dark;

另外我发现苹果在Info.plist里用了这样的配置:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>ISGraphicIconConfiguration</key>
    <dict>
        <key>ISEnclosureColor</key>
        <string>gray</string>
        <key>ISSymbolColor</key>
        <string>white</string>
        <key>ISSymbolName</key>
        <string>key.fill</string>
    </dict>
</dict>
</plist>

内容的提问来源于stack exchange,提问作者Marek H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.02 03:49:51