applicationWillTerminate未调用

Ily*_*okh 2 macos cocoa application-close

我实现了applicationWillTerminate方法,但它从未被调用过

-(void)applicationWillTerminate:(NSNotification *)notification
{
    [[NSApplication sharedApplication] terminate:self];
    NSLog(@"EOP");
}
Run Code Online (Sandbox Code Playgroud)

如何在应用程序关闭之前执行一些代码?

谢谢

Ily*_*okh 5

我刚才补充道

-(BOOL) applicationShouldTerminateAfterLastWindowClosed:(NSApplication *) sender{
return YES;
}
Run Code Online (Sandbox Code Playgroud)

现在applicationWillTerminate调用

  • 无法关闭应用程序;该动词不与该名词搭配。是的,当用户关闭最后一个窗口时,应用程序通常不会自动退出。你必须选择这样做。实际上使用 Quit 命令退出应用程序总是会触发“applicationWillTerminate:”(假设没有任何东西(例如确认警报)妨碍)。Lion 中引入的替代方案是自动终止,它比较懒惰,并假装应用程序仍在运行;请参阅文档。 (2认同)