当我最小化applicationDidEnterInBackground
没有为 Mac Catalyst 调用的应用程序时。经过一番搜索,我发现 Mac Catalyst 没有调用 Background 委托方法,而是调用了 Scene 委托的前台方法。
有什么方法可以跟踪或处理最小化委托方法NSWindowDelegate
吗?
谢谢
当我最小化applicationDidEnterInBackground
没有为 Mac Catalyst 调用的应用程序时。经过一番搜索,我发现 Mac Catalyst 没有调用 Background 委托方法,而是调用了 Scene 委托的前台方法。
有什么方法可以跟踪或处理最小化委托方法NSWindowDelegate
吗?
谢谢
好吧,如果你检查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
:退出全屏后。完整的通知列表在这里。