当我最小化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:退出全屏后。完整的通知列表在这里。