9
當主(唯一一個)關閉時,如何正確退出Mac OS X應用程序?NSWindow關閉時退出應用程序
我知道那裏有一種方法- (void)windowWillClose:(NSNotification *)notification
在NSWindowDelegate
。但它不太適合我的情況,因爲它在NSWindow
關閉之前被稱爲。
當主(唯一一個)關閉時,如何正確退出Mac OS X應用程序?NSWindow關閉時退出應用程序
我知道那裏有一種方法- (void)windowWillClose:(NSNotification *)notification
在NSWindowDelegate
。但它不太適合我的情況,因爲它在NSWindow
關閉之前被稱爲。
你不能有windowDidClose
事件,因爲伴隨它的通知將持有一個無效的對象(該窗口很可能在關閉時解除分配)。爲了達到你所需要的,讓你的類應用的代表,並實現以下方法:
- (BOOL) applicationShouldTerminateAfterLastWindowClosed: (NSApplication *) theApplication;
從這個方法,返回YES
。
如果您的控制器對象在MainMenu.nib
中有一個實例,只需從File's Owner(意味着MainMenu.nob文件中的Application Object)建立連接即可。控制 - 從文件的所有者拖動到您的對象,並連接代理插座。
或者源代碼,把這樣的事情在你的控制器對象的init方法:
[NSApp setDelegate: self];
謝謝!在'NSApplicationDelegate'中沒有注意到這個方法。 :) – 2010-10-15 12:35:59