不激活全屏模式的自助服务终端样式 - OS X
Kiosk style without activating full-screen mode - OS X
我正在尝试隐藏屏幕顶部的停靠栏和 menu/spotlight 栏,基本上进入我的 Cocoa OS X 应用程序的信息亭模式。但是,我不想激活全屏模式。我希望应用程序像往常一样 运行,但只是隐藏桌面上的停靠栏和 menu/spotlight 区域以阻止用户使用它们。我尝试了多种选择,但似乎无法正常工作。
https://developer.apple.com/library/mac/technotes/KioskMode/Introduction/Introduction.html
似乎此代码的大多数实现都需要进入全屏或 Objective C。有没有办法在 Swift 中执行此操作而无需进入全屏模式?
更新 - 我知道怎么做了!我可以使用 NSMenu 隐藏菜单,但我必须通过访问终端来隐藏停靠栏。可能有一种更简单、更清洁的方法,但我找不到。我希望这可以帮助其他寻求解决方案的人!
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 隐藏菜单,但我必须通过访问终端来隐藏停靠栏。可能有一种更简单、更清洁的方法,但我找不到。我希望这可以帮助其他人寻找解决方案。
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)
}
}
}
以下是您要查找的内容吗?
Swift 3:
func applicationWillFinishLaunching(_ notification: Notification) {
NSApp.presentationOptions = [.autoHideDock, .autoHideMenuBar]
}
Swift 2:
func applicationWillFinishLaunching(notification: NSNotification) {
NSApp.presentationOptions = [.AutoHideDock, .AutoHideMenuBar]
}
(注释掉代码中的所有其他内容,或者至少注释掉此处包含的代码)。
我正在尝试隐藏屏幕顶部的停靠栏和 menu/spotlight 栏,基本上进入我的 Cocoa OS X 应用程序的信息亭模式。但是,我不想激活全屏模式。我希望应用程序像往常一样 运行,但只是隐藏桌面上的停靠栏和 menu/spotlight 区域以阻止用户使用它们。我尝试了多种选择,但似乎无法正常工作。
https://developer.apple.com/library/mac/technotes/KioskMode/Introduction/Introduction.html
似乎此代码的大多数实现都需要进入全屏或 Objective C。有没有办法在 Swift 中执行此操作而无需进入全屏模式?
更新 - 我知道怎么做了!我可以使用 NSMenu 隐藏菜单,但我必须通过访问终端来隐藏停靠栏。可能有一种更简单、更清洁的方法,但我找不到。我希望这可以帮助其他寻求解决方案的人!
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 隐藏菜单,但我必须通过访问终端来隐藏停靠栏。可能有一种更简单、更清洁的方法,但我找不到。我希望这可以帮助其他人寻找解决方案。
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)
}
}
}
以下是您要查找的内容吗?
Swift 3:
func applicationWillFinishLaunching(_ notification: Notification) {
NSApp.presentationOptions = [.autoHideDock, .autoHideMenuBar]
}
Swift 2:
func applicationWillFinishLaunching(notification: NSNotification) {
NSApp.presentationOptions = [.AutoHideDock, .AutoHideMenuBar]
}
(注释掉代码中的所有其他内容,或者至少注释掉此处包含的代码)。