Вы не можете иметь событие windowDidClose
, поскольку сопровождающее его уведомление будет содержать недопустимый объект (окно, вероятно, было освобождено при закрытии).Чтобы достичь того, что вам нужно, сделайте ваш класс делегатом Приложения и реализуйте следующий метод:
- (BOOL) applicationShouldTerminateAfterLastWindowClosed: (NSApplication *) theApplication;
Из этого метода верните YES
.
Если ваш объект контроллера имеетэкземпляр в MainMenu.nib
, просто установите соединение с владельцем файла (что означает объект приложения в файле MainMenu.nob).Удерживая нажатой клавишу «Control», перетащите «Владелец файла» к своему объекту и подключите выход делегата.
Или в исходном коде вставьте нечто подобное в метод init объекта вашего контроллера:
[NSApp setDelegate: self];