【问题标题】:Cocoa - Prevent System from shutting downCocoa - 防止系统关闭
【发布时间】:2011-04-01 11:18:56
【问题描述】:

大家好, 我还有一个问题,我在网上找不到答案。我希望你能帮助我。

我正在编写一个在后台运行并为我执行多项任务的 Cocoa 应用程序。如果我退出应用程序,我会显示 NSAlert。这一切都很好。但是我的问题来了。此警报从applicationShouldTerminate: 方法内部呈现。因此,如果我注销,则会触发此方法并显示警报。但是即使我返回NSTerminateCancel,OSX 也会退出应用程序并注销而不等待响应。

如何强制操作系统停止从我的应用程序中注销/关闭,以便用户(我自己 :-D)可以决定做什么。 (它只是一个对话框,询问是否保存已完成的工作。)

希望你能帮帮我……

桑德罗

【问题讨论】:

  • 您找到解决方案了吗?我有同样的问题。
  • 没有。因为我已经不需要了。所以我停止了搜索。但我认为mu96的答案应该做到这一点。看看那个。

标签: objective-c cocoa macos


【解决方案1】:

Mac OS X 基于 UNIX。当系统关闭时,会发送终止所有进程的 SIGKILL 信号。但在此之前,会发送 SIGTERM 信号,通知进程将要关闭。

我认为解决方案在于处理信号,即检测和阻止它们。关于这一点,您可以在GNU C Library: Signal Handling: Blocking Signals. 中找到指导

那里的例子可能是关于 BSD 的,但你可能知道 OS X 内核是从 BSD 派生的,因此 OS X 支持它。此外,Objective-C 支持 C。

【讨论】:

  • 感谢您的回答。我去看看。
猜你喜欢
  • 2019-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-23
  • 2021-02-09
相关资源
最近更新 更多