2011-04-09 45 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; 
}