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

SwiftUI开发:如何显示Stage Manager图标并解决窗口图标设置失败问题

解决SwiftUI Mac应用窗口图标与Stage Manager图标问题

一、修复窗口图标设置失败问题

你的代码尝试通过standardWindowButton(.documentIconButton)设置图标,但该方法在部分SwiftUI窗口样式下可能不生效,或资源加载存在问题,可按以下步骤排查修复:

  • 检查资源配置
    确保AppIcon已正确添加到项目资源中:

    1. 打开Assets.xcassets,确认存在名为AppIcon的图标集,且包含Mac平台所需尺寸(16x16、32x32、64x64、128x128等)。
    2. 若使用单独图片文件,需确保文件已勾选当前应用Target,且文件名拼写完全一致(区分大小写)。
  • 更换窗口图标设置方式
    直接设置NSWindow的icon属性,比查找按钮更可靠:

    @objc func didCreateWindow(_ notification: Notification) {
        if let window = notification.object as? NSWindow {
            window.title = "🐰兔可可的纪念日啊"
            // 直接设置窗口图标
            if let iconImage = NSImage(named: "AppIcon") {
                window.icon = iconImage
            } else {
                print("图标加载失败")
            }
        }
    }
    
  • 确认通知监听正确注册
    确保在合适时机注册窗口创建通知,比如在App结构体的初始化方法中:

    @main
    struct AnniversaryApp: App {
        init() {
            NotificationCenter.default.addObserver(
                self,
                selector: #selector(didCreateWindow(_:)),
                name: NSWindow.didCreateNotification,
                object: nil
            )
        }
    
        var body: some Scene {
            WindowGroup {
                ContentView()
            }
        }
    
        @objc func didCreateWindow(_ notification: Notification) {
            // 你的代码逻辑
        }
    }
    

二、让应用在Stage Manager中显示图标

Stage Manager显示的是应用官方图标,需确保应用图标配置正确:

  • 完善AppIcon资源
    在Assets.xcassets的AppIcon图标集中,补充Mac平台所有必要尺寸,尤其是512x512和1024x1024的高分辨率图标,这是Stage Manager优先读取的尺寸。

  • 确认项目配置

    1. 打开项目Target的General标签页,在App Icon and Launch Images部分,确保App Icon Source选择了你的AppIcon资源。
    2. 检查Info.plist中是否存在CFBundleIconFile或CFBundleIcons键,确保其指向正确的图标资源(Xcode通常会自动配置,手动修改过需验证)。
  • 清理缓存并重启
    修改图标后,执行Product > Clean Build Folder清理Xcode缓存,删除应用的Derived Data,重新运行应用后,Stage Manager会读取更新后的图标。

内容的提问来源于stack exchange,提问作者Ben John

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 16:03:16