如何限制 macOS 窗口管理恢复特定窗口?

2024-01-18

我有一个应用程序,它有几个窗口定义为窗口组,其结构符合主场景中的应用程序:

WindowGroup("StandingsView") {
    
    StandingsView()
        .environmentObject(appServices)
}
.handlesExternalEvents(matching: Set(arrayLiteral: "StandingsView"))

appServices 需要一些时间来配置,所以我不想在启动时自动恢复窗口。我在用户选择有效、服务完全配置并且用户按下“开始”SwiftUI 按钮时创建窗口:

if let standingsURL = URL(string: "raceStratLiteApp://StandingsView") {
    NSWorkspace.shared.open(standingsURL)
}

我尝试关闭 appDelegate 的 applicationShouldTerminate() 中的窗口。 我还尝试在 applicationShouldTerminate 中将 isRestorable 设置为 false:

func applicationShouldTerminate(_ sender: NSApplication) -> NSApplication.TerminateReply {
    
    for window in NSApplication.shared.windows {
        window.isRestorable = false
    }
    return .terminateNow
}

还有其他方法不恢复窗口吗?或者更好的是,能够以编程方式将其恢复为之前的大小等,但仅在用户指示“启动”时启动

TIA


@Asperi 在后面的评论中建议的代码解决方案:

func applicationDidFinishLaunching(_ notification: Notification) {
    UserDefaults.standard.register(defaults: ["NSQuitAlwaysKeepsWindows" : false])
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何限制 macOS 窗口管理恢复特定窗口? 的相关文章

随机推荐

  • 如何移动SVG在D3中的位置?

    我使用 D3 创建了一个 svg 然而 它只显示在屏幕的左上角 或者被附加到另一个 svg 中 我可以使用 JavaScript 移动它吗 例如 var svg d3 select body append svg attr width 20
  • 在 Linux 中正常构建的 C++ 程序在 VS2010 中编译失败

    我的 C 项目在 Linux 上构建并运行良好 现在我正在尝试在VS2010中编译它 我似乎从 cmath 库中收到许多错误 如下所示 Error 1 error C2061 syntax error identifier acosf c
  • Labview - 通过数组大小限制增加数组索引

    我正在使用labview XY线图 该图使用随机数生成器生成y值 并使用while循环计数生成x值 当达到阈值 x 值 例如 1000 时 我希望能够迭代过去的 1000 个值并仅每 10 个值显示一次 这具有整理绘图的效果 理想情况下 实
  • 如何在 Rust 中计算 21 的阶乘?

    我需要在我的项目中计算 21 的阶乘 fn factorial num u64 gt u64 match num 0 gt 1 1 gt 1 gt factorial num 1 num fn main let x factorial 21
  • 数组中实际上是空白列?

    我在 Google 表格中使用这个公式 SORT SORT Discord D B2 B Discord D A2 A ARRAYFORMULA IF Discord D G2 G IF Discord D C2 C lt gt Remov
  • 系统.ServiceModel.Web .NET Core

    我正在将 NET Framework 应用程序移植到 NET Core 中 我已通过 NuGet System ServiceModel Web 添加 但似乎不起作用 我需要 WebGet 的替代方案 ServiceContract pub
  • 如何拒绝来自 then 函数内部的承诺

    这可能是一个愚蠢的问题 但是在承诺链中 如何拒绝来自 then 函数之一的承诺 例如 someActionThatReturnsAPromise then function resource return modifyResource re
  • Android E/Parcel:解组时未找到类(仅在 Samsung Tab3 上)

    我一直无法解决为什么会出现此错误 并且仅在运行 4 4 2 的 Samsung Tab3 设备上出现 当我的 MainActivity 启动另一个 Activity 并在意图中传递一个 Parcelable 类时 就会发生这种情况 如下所示
  • 避免屏幕旋转后重新创建片段的真正方法(以官方片段开发人员指南为例)

    我正在寻找一种真正的方法来避免屏幕旋转后重新创建片段 if container null return null is not真正避免了片段被重新创建 如下图所示 官方片段开发人员指南在哪里 我们关注的官方指南位于http develope
  • 如何将 Windows 身份验证与 Microsoft.Rest.ServiceClient 结合使用

    我有一个Microsoft Rest ServiceClient生成为autorest 我想访问使用 Windows 身份验证和基本身份验证保护的 REST API 目标是使用 Windows 身份验证 我尝试如下 var handler
  • 如何让 Jaws 读取 aria-descriptedby 属性

    问题如标题中所述 这是我的 HTML 代码 li a href https illinois edu toolbox 0 portlet componentId 13 amp desktopId 1 setup a li div HELLO
  • 在 WSDL 文件中包含架构类型

    我手工创建了一个 WSDL 它只有一个操作 没有输入参数 也没有输出参数 当我尝试从此 WSDL 创建客户端时 出现以下错误 无法导入 wsdl portType 详细信息 运行 WSDL 导入扩展时引发异常 System ServiceM
  • 通过 Android 与串行 USB 设备通信

    我有一台用于测量电流的定制设备 该设备可以连接到 PC 并通过 USB 进行通信 它基于FTDI芯片 我有用 Java 编写的应用程序 该应用程序使用 rxtxSerial dll 库和 gnu io rxtx 2 1 7 4 jar 现在
  • 使用opencv GPU旋转图像

    我在用着GPU 旋转 https docs opencv org 2 4 modules gpu doc image processing html gpu rotate从 opencv lib 顺时针旋转图像 include
  • 基于std::vector的N维张量

    我想使用 std vector 定义 n 维数据结构 我对operator 的定义有疑问 让我们看一下二维结构示例 class my data public my data size t N size t M tab N M N N M M
  • 如何从 HTML 字符串获取 beautiful soup 中的开始和结束标签?

    我正在使用 beautiful soup 编写一个 python 脚本 其中我必须从包含一些 HTML 代码的字符串中获取开始标记 这是我的字符串 string p p 我想要得到 p 在一个名为opening tag and p 在一个名
  • 有没有办法在每次启动 cmd 时运行 vcvars32.bat?

    我在用着cl in cmd并且不得不跑vcvars32 bat每次我打开一个cmdwindow 确实是一个痛苦的 axx 谁能提供一种自动运行它的方法 From cmd 如果在命令行上未指定 D 则当 CMD EXE 启动时 它 查找以下
  • DDD“查看对象”?

    假设一个应用程序涉及公司 我可能有一个公司类 我将有一个填充列表 的数据访问层 但是 有时 例如显示搜索结果 我只需要显示公司名称 电话和邮政编码属性 并且在我看来 用其所有属性填充整个公司对象似乎很浪费 就 DDD 设计而言 解决此问题的
  • Redmine错误日志致命:不是git存储库

    我在git服务器 gitlab 上安装了redmine 这是我们的主要git服务器 同一台机器 当我在redmine web中添加存储库 通过gitlab 信息时 redmine日志说 usr local redmine log devel
  • 如何限制 macOS 窗口管理恢复特定窗口?

    我有一个应用程序 它有几个窗口定义为窗口组 其结构符合主场景中的应用程序 WindowGroup StandingsView StandingsView environmentObject appServices handlesExtern