在3D应用程序中,我处理NSWindowWillCloseNotification
进行清理(停止显示链接,释放资源等)。该应用程序可以在两种模式下运行:OpenGL和Metal。有一个ViewBase
类可以实现通用功能,并且可以处理通知。
在OpenGL模式下一切正常,但是在“金属”模式下,退出全屏窗口时会收到NSWindowWillCloseNotification
,导致应用停止显示任何内容。 Metal和OpenGL之间唯一有意义的区别是Metal视图使用了背层,但是我不知道为什么这很重要。
我完全感到困惑,为什么会发生这种情况,并希望获得任何帮助。
答案 0 :(得分:0)
事实证明,我正在awakeFromNib
中设置通知处理程序,其中[self window]
为nil。因此,通知处理程序设置为空窗口。我通过参考主应用程序窗口来解决此问题:auto* mainWindow = [[NSApplication sharedApplication] mainWindow];