这只是我的应用程序,还是所有使用 Catalyst 制作的 Mac 应用程序除了启动或退出时之外都不会经历生命周期更改?
启动后,将调用 UIWindowSceneDelegate
方法 sceneWillEnterForeground:
和 sceneDidBecomeActive:
。退出时调用 sceneWillResignActive
和 sceneDidEnterBackground
。
但是,当应用程序保持打开状态并且我更改为新应用程序,或者让我的计算机休眠,或者执行其他我希望强制应用程序进入后台状态的正常人类使用模式时,这些永远不会发生。我的印象是,只要用户不退出该应用程序就永远不会离开前台状态。这是正确的吗?
如果我实现对自动或突然终止的支持(如 here 所示),应用程序是否会更频繁地进入/退出应用程序状态?
我是不是有什么误解?
感谢您的帮助。
(注意:我构建了一个记录应用程序转换的系统,而不是“场景”转换,以便能够在 Xcode 中运行应用程序的情况下进行测试。)
最佳答案
就我而言,解决方法有所帮助:
#if targetEnvironment(macCatalyst)
nc.addObserver(self, selector: #selector(hold), name: NSNotification.Name("NSApplicationDidResignActiveNotification"),object: nil)
nc.addObserver(self, selector: #selector(resume), name: NSNotification.Name("NSApplicationDidBecomeActiveNotification"),object: nil)
#endif
希望将来有一个使用 UIScene 的更优雅的选项。
关于objective-c - Mac Catalyst 应用程序如何处理生命周期转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59958419/