当我最小化应用程序时 applicationDidEnterInBackground
未调用 Mac Catalyst。经过一番搜索后,我发现 Mac Catalyst 没有调用后台委托(delegate)方法,而是调用了场景委托(delegate)的前台方法。
有什么方法可以跟踪或处理像 NSWindowDelegate
这样的最小化委托(delegate)方法吗?
谢谢
最佳答案
好吧,如果你检查 NSWindowDelegate.windowWillMiniaturize:
你会注意到它的参数只是一个通知(它的名字是 NSWindowWillMiniaturizeNotification
)。
因此,您可以简单地观察该通知,以便在应用中的窗口即将最小化时收到通知:
NotificationCenter.default.addObserver(forName: NSWindow.willMiniaturizeNotification, object: nil, queue: nil) { notification in
print("This window is about to be minimized:", notification.object)
}
您也可以执行相同的操作以获得有关其他事件的通知,例如:
NSWindow.didMiniaturizeNotification
:窗口最小化后。NSWindow.didDeminiaturizeNotification
:在窗口恢复/去最小化之后。NSWindow.willEnterFullScreenNotification
:进入全屏之前。NSWindow.didEnterFullScreenNotification
:进入全屏后。NSWindow.willExitFullScreenNotification
:退出全屏之前。NSWindow.didExitFullScreenNotification
:退出全屏后。
完整的通知列表 here .
关于swift - 检测 UIKIt for Mac 的应用程序最小化事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59951112/