【问题标题】:Mac Kiosk Mode API - Prevent Users from QuittingMac Kiosk Mode API - 防止用户退出
【发布时间】:2012-07-11 04:19:03
【问题描述】:

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

Apple 的 Kiosk Mode API (documentation here) 似乎非常适合这个,我用它来全屏显示窗口,禁用停靠栏/菜单栏/强制退出等,所有这些都可以正常工作.我遇到的问题是我似乎无法阻止用户简单地 CMD+Q 退出应用程序。

当用户可以退出时,信息亭模式应用程序没有任何意义,所以我假设我错过了一些东西。下面是我正在做的一个例子:

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

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

结果:全屏窗口,没有菜单栏,没有停靠,不能强制退出,也不能 CMD+Tab 离开屏幕。 CMD+Q 仍然会退出应用程序。

【问题讨论】:

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


【解决方案1】:

我猜他找到了和我一样的解决方案,但由于这里实际上没有回答,我想我会详细说明。

你需要做的是实现下面的 NSApplicationDelegate 方法:

- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender

当您的应用处于 Kiosk 模式时,然后在此处返回 NSTerminateCancel。

【讨论】:

    猜你喜欢
    • 2012-07-12
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    • 1970-01-01
    相关资源
    最近更新 更多