最小化的 macOS 应用程序 + distributedNotificationCenter(macOS 上的后台模式)

Minimized macOS application + distributedNotificationCenter (background mode on macOS)

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

向应用程序发送通知

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

P.S - 我在文档中没有找到任何内容,当我试图检查发生了什么时,有时应用会收到通知,有时却没有..所以要求检查是什么预期的行为。

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

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