防止用户注销或关闭

时间:2012-03-12 21:04:13

标签: objective-c macos cocoa macos-carbon

我正在开发Mac OS应用程序,其中一个要求是,如果用户尚未完成应用程序中的某些任务,此应用程序会阻止用户注销或关闭计算机。是否有可能用Cocoa或Carbon实现这一目标?如果是这样,我怎么能实现这样的功能呢?

谢谢

2 个答案:

答案 0 :(得分:4)

当用户尝试注销或关闭时,系统将要求所有应用程序退出。如果任何申请拒绝退出,该行动将被取消。由于您要取消这些操作,因此您可能希望阻止应用程序正常退出。作为终止序列的一部分,应用程序要求其代表获得许可。因此,要取消注销和关闭,以及阻止用户正常退出您的应用程序,您可以使用应用程序委托拒绝该操作。

- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
    if([self shouldPreventTermination])
        return NSTerminateCancel;
    return NSTerminateNow;
}

答案 1 :(得分:2)

这可以通过Kiosk模式(documentation)实现。请注意,通常有办法解决它。