2011-04-09 83 views
0

我試着去讓用戶決定是否退出應用程序或不和我一直試圖以此來實現它不工作:NSAlertPanel當應用程序正在退出

- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender { 
int answer = NSRunAlertPanel(@"Quit", @"Are you sure?", @"Quit", @"Cancel", nil); 
if (answer == NSAlertDefaultReturn) { return NSTerminateNow; 
} else { return NSTerminateCancel; 
} 
} 

我把這個在我的AppDelegate。 m並將代理鏈接到我在界面構建器中的主窗口。當我調試和運行在Xcode中的應用程序,並按關閉按鈕,應用程序窗口關閉,但警報面板不彈出..

我做錯了什麼?感謝您的幫助!!我是新來的,希望有人能幫助我。謝謝你!

+0

你用的NSLog檢查「答案」,以確保它返回你期望的回報是什麼? – sosborn 2011-04-09 11:27:42

+0

爲什麼要關閉窗口會導致應用程序退出? – JWWalker 2011-04-09 16:46:21

回答

1

默認情況下,關閉窗口不會退出應用程序,因此不會觸發警報面板。爲了使應用程序退出並顯示您的警報當用戶關閉窗口只是將其添加到委託:

- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)aApplication { 
    return YES; 
}