的Mac Kiosk模式API - 强制退出应用程序崩溃
问题描述:
我以书面形式在Mac(10.6/10.7)的应用程序,允许他们进入计算机之前对其进行验证针对Active Directory的域用户的过程是(有人告诉我,我可以不允许用户通过传统登录服务登录)。我有认证代码,并且正在尝试使此登录窗口成为全屏并且无法关闭。的Mac Kiosk模式API - 强制退出应用程序崩溃
Apple的Kiosk Mode API(文档在这里)似乎非常适合这个,我用它来使窗口全屏,停用dock/menu bar /强制退出等,其中大部分工作正常。但是,我发现当我将窗口的视图设置为全屏模式时,尝试启动强制退出窗口会使应用程序(无论是桌面还是全屏,并需要完全重新启动)崩溃。
代码示例:
NSApplicationPresentationOptions options =
NSApplicationPresentationHideMenuBar|NSApplicationPresentationHideDock|
NSApplicationPresentationDisableHideApplication|
NSApplicationPresentationDisableProcessSwitching|
NSApplicationPresentationDisableAppleMenu|
NSApplicationPresentationDisableForceQuit;
[NSApp setPresentationOptions:options];
[[_window contentView] enterFullScreenMode:[NSScreen mainScreen] withOptions:nil];
我能想到的唯一的事情是,期权的NSApplication并非完全被切换到全屏时保留;除禁用强制退出以外的每个选项似乎都会结束。任何建议感激!
答
这实际上是在Mac上的全屏应用程序的正常行为。当您在全屏应用中使用Cmd + Opt + Esc时,它将立即终止捕获屏幕的进程,而不是呈现标准的终止界面。
我想这是有道理的,但它是我的理解是,Kiosk模式API是专门设计,以防止用户能够终止应用程序。 – Blastfire 2012-07-12 14:29:31
这是,但我相信你必须以特殊的权限运行。否则,任何应用程序可能会阻止用户,直到他输入了他的信用卡号码或其他东西。尝试以“root”身份运行应用程序 - 是否可以工作? – 2012-07-12 15:52:49
Nah,没有工作。我想我将退出使用NSView的enterFullScreenMode并改为使用屏蔽屏幕,并使用NSApp选项禁用强制退出。谢谢,不过。 – Blastfire 2012-07-12 17:55:48