我正在编写一个 Mac (10.6 / 10.7) 应用程序,该应用程序在允许用户访问计算机之前针对 Active Directory 域对用户进行身份验证(我被告知我不能允许用户通过传统登录服务登录)。我有验证码,现在正试图让这个登录窗口全屏并且无法关闭。
Apple 的 Kiosk Mode API(此处的文档)似乎非常适合此操作,我已经使用它来全屏显示窗口、禁用停靠/菜单栏/强制退出等,所有这些都可以正常工作。我遇到的问题是我似乎无法阻止用户简单地使用 CMD+Q 退出应用程序。
当用户可以退出它时,具有限制的信息亭模式应用程序没有意义,所以我假设我错过了一些东西。下面是我正在做的一个例子:
NSApplicationPresentationOptions options =
NSApplicationPresentationHideMenuBar|NSApplicationPresentationHideDock|
NSApplicationPresentationDisableHideApplication|
NSApplicationPresentationDisableProcessSwitching|
NSApplicationPresentationDisableAppleMenu| NSApplicationPresentationDisableForceQuit;
[NSApp setPresentationOptions:options];
[[_window contentView] enterFullScreenMode:[NSScreen mainScreen] withOptions:nil];
结果:全屏窗口,没有菜单栏,没有停靠,不能强制退出,也不能 CMD+Tab 离开屏幕。CMD+Q 仍然退出应用程序。