NSWindowWillCloseNotification получено при выходе из полноэкранного режима - PullRequest
0 голосов
/ 06 января 2019

В моем 3D-приложении я обрабатываю NSWindowWillCloseNotification для выполнения очистки (остановка отображения ссылки, освобождение ресурсов и т. Д.). Приложение может работать в двух режимах, OpenGL и Metal. Существует класс ViewBase, который реализует общие функциональные возможности и среди прочего обрабатывает уведомление.

В режиме OpenGL все работает нормально, однако в режиме Metal при выходе из полноэкранного окна принимается NSWindowWillCloseNotification, в результате чего приложение перестает отображать что-либо. Единственное значимое различие между Metal и OpenGL заключается в том, что в Metal view используется слой подложки, но я не знаю, почему это может иметь значение. Я совершенно не понимаю, почему это может произойти, и буду признателен за любую помощь.

1 Ответ

0 голосов
/ 07 января 2019

Как оказалось, я устанавливал обработчик уведомлений в awakeFromNib, где [self window] равнялся нулю. Таким образом, обработчик уведомлений был установлен в нулевое окно. Я исправил проблему, обратившись к основному окну приложения: auto* mainWindow = [[NSApplication sharedApplication] mainWindow];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...