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

基于文档的macOS SwiftUI应用如何在启动时显示欢迎窗口?

基于文档的SwiftUI macOS应用启动时自动显示欢迎窗口的纯SwiftUI方案需求

我开发了一款基于文档的SwiftUI macOS应用,希望在启动时显示类似Xcode的欢迎窗口。已编写如下代码:

Window("Welcome", id: "welcome") {
    WelcomeView()
}
.windowStyle(.hiddenTitleBar)
.windowResizability(.contentSize)

该窗口外观符合预期,且在Window菜单中显示位置正确(未归入文档窗口),但无法实现启动时自动显示。我已尝试以下方法:

  • 使用@Environment(\.openWindow) var openWindow并在App的init函数中调用,因未进入SwiftUI生命周期报错;
  • 将openWindow调用放入Task并延迟执行,无效果;
  • 通过@Environment(\.scenePhase)触发openWindow,仅在文档窗口创建后触发,时机过晚;
  • 改用WindowGroup并设置handlesExternalEvents,导致File->New菜单同时包含普通文档和欢迎窗口,不符合需求;
  • 尝试过一种依赖onAppear的启动多窗口方案,但基于文档的应用启动时无实例化View,无法使用该方法。

我已通过AppKit(使用AppDelegate创建NSWindow并托管WelcomeView)实现需求,但希望找到纯SwiftUI的解决方案。

更新:已通过AppKit完成实现,留此问题等待更优方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 02:15:04