Избегать автоматического выпуска NSWindow, открывающего другое NSWindow? - PullRequest
0 голосов
/ 15 марта 2012

Когда я открываю NSWindow, который автоматически выпускается, все работает правильно.NSWindow высвобождается моим корневым классом только после того, как я нажму кнопку ОК.

Однако, когда я открываю NSWindow и из открытого NSWindow я открываю новый NSWindow,Я получаю ошибку неверного доступа.Это происходит потому, что первое окно больше не считается активным и оно освобождается корневым классом.

Как мне избежать этой проблемы?

1 Ответ

1 голос
/ 16 марта 2012

Простой ответ: не делайте этого, вы полагаетесь на неопределенное поведение и просите об ошибке. Вы должны держать сильную ссылку на окно и освобождать его, только когда вы закончите с окном.

Как правило, вы должны использовать NSWindowController для управления каждым открываемым окном. NSWindowController содержит ссылку на окно, и вы можете легко вызвать showWindow: и close: методы NSWindowController для управления отображением окна.

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

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