Mac Kiosk Mode API - 强制退出崩溃应用程序

时间:2012-07-12 13:54:41

标签: objective-c macos keyboard-shortcuts fullscreen kiosk-mode

我正在编写一个Mac(10.6 / 10.7)应用程序,该应用程序在允许用户访问计算机之前对Active Directory域进行身份验证(我被告知我不允许用户通过传统方式登录登录服务)。我已经有了身份验证代码,现在我正在尝试将此登录窗口设置为全屏而无法关闭。

Apple的Kiosk Mode API(这里的文档)似乎非常适合这个,我用它来使窗口全屏,禁用停靠/菜单栏/强制退出等,其中大部分工作正常。但是,我发现当我将窗口视图设置为全屏模式时,尝试调出强制退出窗口会导致应用程序崩溃(无论是在桌面上还是在全屏模式下都需要完全重启)。

代码示例:

NSApplicationPresentationOptions options = 
NSApplicationPresentationHideMenuBar|NSApplicationPresentationHideDock|
NSApplicationPresentationDisableHideApplication|
NSApplicationPresentationDisableProcessSwitching|
NSApplicationPresentationDisableAppleMenu|
NSApplicationPresentationDisableForceQuit;

[NSApp setPresentationOptions:options];
[[_window contentView] enterFullScreenMode:[NSScreen mainScreen] withOptions:nil];

我唯一能想到的是切换到全屏时NSApplication选项并没有完全保留;除了禁用强制退出之外的每个选项似乎都会延续。任何建议表示赞赏!

1 个答案:

答案 0 :(得分:0)

对于全屏应用,这实际上是Mac上的正常行为。当您在全屏应用程序中使用Cmd + Opt + Esc时,它将立即终止捕获屏幕的进程,而不是呈现标准终止UI。