【发布时间】:2020-04-13 20:12:36
【问题描述】:
为了探索 SwiftUI,我创建了一个示例 iOS 应用程序;在某些时候,我认为启用 Mac 支持会是一件有趣的事情,但令人惊讶的是,我得到了很好的结果,几乎没有额外的代码。
在 Mac 上测试应用程序时,我注意到应用程序在我关闭其窗口后退出,这不是大多数应用程序的工作方式。
尝试使用 applicationShouldHandleReopen 不是一个选项,因为 NSApplicationDelegate 对于 Catalyst 是不可能的,我无法在 UIApplicationDelegate 或 UISceneDelegate 中找到对应的,并且我无法找到任何内容Apple 文档中的这个主题。
在 Catalyst 应用上实现传统 Mac 应用行为 (†) 的正确方法是什么?
(†) 传统的 mac 应用程序行为:当应用程序窗口关闭时,应用程序图标仍保留在文档中,如果您单击它,应用程序窗口会再次出现
【问题讨论】:
-
这不是
applicationShouldTerminateAfterLastWindowClosed吗?还是因为它来自 iOS 世界,所以催化剂很特别? -
如果你没有多个窗口,这是正确的行为
-
查看例如日历或系统偏好设置
-
感谢您的cmets;您提到的代表属于
NSApplicationDelegate,这在 Catalyst 上不可用。 -
我也很想知道这一点。我遇到的唯一一件事是tweet from Simon B. Støvring,它使用 swizzling 解决了这个问题。
标签: swift swiftui uiapplicationdelegate mac-catalyst