在Mac App上"锁定"屏幕

The*_*ken 4 macos objective-c lockscreen

在Mac OS X中,我需要调用什么API才能在整个屏幕上放置一个窗口,而不仅仅是菜单栏和底座?此外,是否可以有效地"锁定"屏幕到这个位置,禁用任务控制,启动板等?

我在App Delegate的实现文件中尝试了以下代码:

- (void)awakeFromNib {
    @try {
        NSApplicationPresentationOptions options = NSApplicationPresentationDisableForceQuit + NSApplicationPresentationDisableHideApplication + NSApplicationPresentationDisableProcessSwitching + NSApplicationPresentationHideDock + NSApplicationPresentationHideMenuBar + NSApplicationPresentationFullScreen;
        [NSApp setPresentationOptions:options];
        NSLog(@"Set presentation options"); 

    }
    @catch (NSException *exception) {
        NSLog(@"Error. Invalid options");
    }

}
Run Code Online (Sandbox Code Playgroud)

NSLog读取"设置演示选项",但没有其他任何事情发生.有小费吗?

Ken*_*ses 5

这基本上涉及与"自助服务终端模式"相同的事情.请参阅Apple的Kiosk模式编程主题.

您基本上使用-[NSApplication setPresentationOptions:]-[NSView enterFullScreenMode:withOptions:]使用包含键的选项字典,该键NSFullScreenModeApplicationPresentationOptions的值NSNumber包含与方法相同的表示选项值NSApplication.