无需激活全屏模式的 Kiosk 样式 - OS X
Posted
技术标签:
【中文标题】无需激活全屏模式的 Kiosk 样式 - OS X【英文标题】:Kiosk style without activating full-screen mode - OS X 【发布时间】:2016-06-30 18:16:21 【问题描述】:我正在尝试隐藏屏幕顶部的停靠栏和菜单/聚光灯栏,并且基本上进入我的 Cocoa OS X 应用程序的信息亭模式。但是,我不想激活全屏模式。我希望应用程序正常运行,但只需隐藏桌面上的 Dock 和菜单/聚光灯区域,以阻止用户使用它们。我尝试了多种选择,但似乎无法使其正常工作。
https://developer.apple.com/library/mac/technotes/KioskMode/Introduction/Introduction.html
似乎这段代码的大多数实现都需要进入全屏模式或在 Objective C 中。有没有办法在 Swift 中做到这一点而无需进入全屏模式?
更新 - 我知道怎么做!我可以使用 NSMenu 隐藏菜单,但我必须通过访问终端来隐藏 Dock。可能有一种更简单、更清洁的方法,但我找不到。我希望这可以帮助其他正在寻找解决方案的人!
import Cocoa
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate
var datastring = NSString()
func applicationDidFinishLaunching(aNotification: NSNotification)
let task = NSTask()
let pipe = NSPipe()
task.standardOutput = pipe
task.launchPath = "/bin/bash/"
task.arguments = ["defaults write com.apple.dock tilesize -int 1", "killall -Kill Dock"]
let file:NSFileHandle = pipe.fileHandleForReading
task.launch()
task.waitUntilExit()
let data = file.readDataToEndOfFile()
datastring = NSString(data: data, encoding: NSUTF8StringEncoding)!
// Insert code here to initialize your application
func applicationWillTerminate(aNotification: NSNotification)
// Insert code here to tear down your application
override func awakeFromNib()
NSMenu.setMenuBarVisible(false)
【问题讨论】:
菜单可以隐藏在首选项中。也许脚本可以隐藏它。 我可以从 NSMenu 隐藏菜单,但我仍然无法隐藏 Dock。 这些命令将更改停靠设置,但我不确定如何在命令中隐藏它;默认写入 com.apple.dock autohide -bool true 默认写入 com.apple.dock autohide-delay -float 0 默认写入 com.apple.dock autohide-time-modifier -float 0(每个“默认值”之前的换行符) 谢谢约翰!我想出了如何通过访问终端来做到这一点。 不错。核选项! 【参考方案1】:以下是您要查找的内容吗?
斯威夫特 3:
func applicationWillFinishLaunching(_ notification: Notification)
NSApp.presentationOptions = [.autoHideDock, .autoHideMenuBar]
斯威夫特 2:
func applicationWillFinishLaunching(notification: NSNotification)
NSApp.presentationOptions = [.AutoHideDock, .AutoHideMenuBar]
(注释掉您代码中的所有其他内容,或者至少注释您在此处包含的代码)。
【讨论】:
【参考方案2】:我想出了怎么做!我可以使用 NSMenu 隐藏菜单,但我必须通过访问终端来隐藏 Dock。可能有一种更简单、更清洁的方法,但我找不到。我希望这可以帮助其他寻找解决方案的人。
import Cocoa
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate
var datastring = NSString()
func applicationDidFinishLaunching(aNotification: NSNotification)
let task = NSTask()
let pipe = NSPipe()
task.standardOutput = pipe
task.launchPath = "/bin/bash/"
task.arguments = ["defaults write com.apple.dock tilesize -int 1",
"killall -Kill Dock"]
let file:NSFileHandle = pipe.fileHandleForReading
task.launch()
task.waitUntilExit()
let data = file.readDataToEndOfFile()
datastring = NSString(data: data, encoding: NSUTF8StringEncoding)!
func applicationWillTerminate(aNotification: NSNotification)
override func awakeFromNib()
NSMenu.setMenuBarVisible(false)
【讨论】:
以上是关于无需激活全屏模式的 Kiosk 样式 - OS X的主要内容,如果未能解决你的问题,请参考以下文章
Atitit 全屏模式的cs桌面客户端软件gui h5解决方案 Kiosk模式
Android 8.1(API 27) - 重启后键盘未在Kiosk模式应用中显示