gpt4 book ai didi

swift - 当窗口关闭然后选择另一个应用程序时,Mac 应用程序消失

转载 作者:行者123 更新时间:2023-12-03 08:47:05 25 4
gpt4 key购买 nike

我在 Xcode 11.4 中创建了一个新的 macOS 项目,其中语言为 Swift,用户界面为 SwiftUI。在不对项目中的代码进行任何更改的情况下,通过执行以下步骤,应用程序将从 Dock 中消失:

  1. 通过运行 Xcode 项目启动 Mac 应用
  2. 关闭 Mac 应用的主窗口
  3. 选择另一个正在运行的应用,例如 Safari
  4. 原始 Mac 应用程序从 Dock 中消失,无法访问它

如果 Mac 应用程序的窗口打开,则不会发生此行为。我可以选择其他正在运行的应用程序,然后毫无问题地返回到原始 Mac 应用程序。

最佳答案

此行为称为 Automatic Termination 。我发现它是一个错误功能,但苹果认为它是一个功能。

您的应用程序可能并未真正退出。它可能只是看起来已经退出了。再次“启动”它只会使其重新出现在 Dock 中。也有可能一些看起来仍在运行的应用程序实际上已被系统终止。理论上,如果您尝试切换到它们,它们将被启动并被告知恢复之前的状态,以维持它们一直在运行的错觉。在实践中,应用程序(甚至是苹果的)很少能正确地将事物恢复到原来的样子。

事件监视器中的进程列表真实反射(reflect)了实际运行和未运行的进程。查看此处以确定您的应用是否确实已终止。

开发人员应该必须选择自动终止,因为它需要对状态恢复进行显式编码。但是,Xcode 的应用程序项目/目标模板默认启用它。您可以从 Info.plist 中删除 NSSupportsAutomaticTermination 键来禁用它。

同样,如果您不准备支持突然终止,您可能也想禁用它。您将删除 NSSupportsSuddenTermination 键。

关于swift - 当窗口关闭然后选择另一个应用程序时,Mac 应用程序消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60983044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com