应用程序退出时,NSAlertPanel无法正常工作

时间:2011-04-09 10:53:05

标签: objective-c macos quit nsalert

我试图允许用户决定是否退出应用程序,并且我一直在尝试使用它来实现它:

- (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中调试并运行应用程序,并按下关闭按钮时,应用程序窗口关闭但警报面板不会弹出..

我做错了吗?谢谢您的帮助!!我是新来的,希望有人可以帮我这个..非常感谢你!

1 个答案:

答案 0 :(得分:1)

默认关闭窗口不会退出应用程序,因此不会触发警报面板。要在用户关闭窗口时退出应用程序并显示警报,只需将其添加到委托:

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