Простой ответ: не делайте этого, вы полагаетесь на неопределенное поведение и просите об ошибке. Вы должны держать сильную ссылку на окно и освобождать его, только когда вы закончите с окном.
Как правило, вы должны использовать NSWindowController
для управления каждым открываемым окном. NSWindowController
содержит ссылку на окно, и вы можете легко вызвать showWindow:
и close:
методы NSWindowController
для управления отображением окна.
Из вашего вопроса кажется, что вы используете NSWindow
объекты в качестве контроллеров окон. Это не то, как вы должны использовать NSWindow
. Вместо этого используйте NSWindowController
, вот для чего оно.