如何将 NSApplicationPresentationOptions 应用于应用程序?

gra*_*234 5 macos cocoa fullscreen swift

我试图使应用程序以演示模式启动,同时禁用 Dock、菜单栏、进程切换等。我为这些设置设置了变量,但现在我不知道如何将这些设置实际应用到应用程序。这是我到目前为止的代码:

\n\n
let presOptions: NSApplicationPresentationOptions = [\n        .HideDock                  ,   // Dock is entirely unavailable. Spotlight menu is disabled.\n    //  .AutoHideMenuBar           ,   // Menu Bar appears when moused to.\n    //  .DisableAppleMenu          ,   // All Apple menu items are disabled.\n        .DisableProcessSwitching   ,   // Cmd+Tab UI is disabled. All Expos\xc3\xa9 functionality is also disabled.\n        .DisableForceQuit          ,   // Cmd+Opt+Esc panel is disabled.\n        .DisableSessionTermination ,   // PowerKey panel and Restart/Shut Down/Log Out are disabled.\n        .DisableHideApplication    ,   // Application "Hide" menu item is disabled.\n    //  .AutoHideToolbar           ,\n        .FullScreen\n]\n
Run Code Online (Sandbox Code Playgroud)\n\n

我相信之后的一行是:

\n\n
let optionsDictionary = [NSFullScreenModeApplicationPresentationOptions: presOptions]\n
Run Code Online (Sandbox Code Playgroud)\n\n

但在那之后我完全迷失了。谢谢您的任何帮助!

\n

Ste*_*ntz 2

假设您有 anNSWindow和 an NSViewController,您可以执行以下操作:

\n\n
class ViewController: NSViewController {\n    override func viewWillAppear() {\n        let presentationOptions: NSApplicationPresentationOptions = [\n                .HideDock                  ,   // Dock is entirely unavailable. Spotlight menu is disabled.\n                .DisableProcessSwitching   ,   // Cmd+Tab UI is disabled. All Expos\xc3\xa9 functionality is also disabled.\n                .DisableForceQuit          ,   // Cmd+Opt+Esc panel is disabled.\n                .DisableSessionTermination ,   // PowerKey panel and Restart/Shut Down/Log Out are disabled.\n                .DisableHideApplication    ,   // Application "Hide" menu item is disabled.\n                .FullScreen\n        ]\n\n        if let screen = NSScreen.mainScreen() {\n            view.enterFullScreenMode(screen,\n                withOptions: [NSFullScreenModeApplicationPresentationOptions:\n                    NSNumber(unsignedLong: presentationOptions.rawValue)])\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

目前尚不完全清楚哪一个viewDidAppearviewWillAppear执行此操作的最佳位置。从视觉上看似乎没有什么区别。

\n