我正在编写一款Mac(10.6 / 10.7)应用程序,它会在允许用户访问计算机之前对其进行Active Directory域认证(我被告知不能允许用户通过传统的登录服务进行登录)。我已经实现了身份验证代码,现在尝试使此登录窗口全屏并且无法关闭。
苹果的Kiosk Mode API(此处提供文档)似乎非常适合此任务,我已经使用它将窗口变为全屏,禁用了Dock菜单栏/强制退出等功能,所有这些都可以正常工作。但我遇到的问题是,我似乎无法阻止用户通过CMD+ Q退出应用程序。
如果用户可以轻易退出应用程序的话,限制一些功能的kiosk mode应用程序就没有什么意义了,所以我想我可能漏掉了什么。下面是我正在做的示例:
NSApplicationPresentationOptions options =
NSApplicationPresentationHideMenuBar|NSApplicationPresentationHideDock|
NSApplicationPresentationDisableHideApplication|
NSApplicationPresentationDisableProcessSwitching|
NSApplicationPresentationDisableAppleMenu| NSApplicationPresentationDisableForceQuit;
[NSApp setPresentationOptions:options];
[[_window contentView] enterFullScreenMode:[NSScreen mainScreen] withOptions:nil];
结果:全屏窗口,没有菜单栏,没有 dock,无法强制退出,也无法从屏幕上 CMD+Tab 切换。CMD+Q 仍然会退出应用程序。