2010-10-15 197 views
9

當主(唯一一個)關閉時,如何正確退出Mac OS X應用程序?NSWindow關閉時退出應用程序

我知道那裏有一種方法- (void)windowWillClose:(NSNotification *)notificationNSWindowDelegate。但它不太適合我的情況,因爲它在NSWindow關閉之前被稱爲

回答

23

你不能有windowDidClose事件,因爲伴隨它的通知將持有一個無效的對象(該窗口很可能在關閉時解除分配)。爲了達到你所需要的,讓你的類應用的代表,並實現以下方法:

- (BOOL) applicationShouldTerminateAfterLastWindowClosed: (NSApplication *) theApplication; 

從這個方法,返回YES

如果您的控制器對象在MainMenu.nib中有一個實例,只需從File's Owner(意味着MainMenu.nob文件中的Application Object)建立連接即可。控制 - 從文件的所有者拖動到您的對象,並連接代理插座。

或者源代碼,把這樣的事情在你的控制器對象的init方法:

[NSApp setDelegate: self]; 
+0

謝謝!在'NSApplicationDelegate'中沒有注意到這個方法。 :) – 2010-10-15 12:35:59

相關問題