2

我已经实现了一个 macOS 应用 + 扩展。扩展可能会通过 DistributedNotificationCenter.default() 和 postNotificationName(_ name: ...) 向应用发送通知。

这些问题与 macOS 上的应用程序生命周期有关 - 如果用户最小化应用程序,并且扩展程序(正在运行)发送带有“deliverImmediately”标志的通知,会发生什么。应用程序是否能够处理它,即使在最小化的情况下?如果不是,还有其他方法可以实现这种行为吗?

PS - 我在文档中没有找到任何东西,当试图检查发生了什么时,有时应用程序会收到通知,有时它没有......所以要求检查预期的行为是什么。

4

1 回答 1

1

该应用程序在最小化时不会暂停。被最小化是NSWindownot的状态NSApplication。应用程序的运行循环仍然执行,可能不那么频繁,当然,窗口在最小化时不会接收任何键盘或鼠标事件,但应用程序仍然能够处理通知、AppleEvents、网络或文件 I/O,等等...如果通知涉及最小化窗口中的用户交互,您可能需要“取消”最小化NSWindow.deminiaturize(_ sender: Any?)

如果应用程序被隐藏,它仍然会运行,您需要激活它NSApplication.activate(_ sender: Any?)来执行任何 UI。

于 2021-04-03T20:09:39.237 回答