2016-06-30 49 views
2

我想隱藏底座,菜單/聚光燈欄在屏幕頂部,基本上進入我的Cocoa OS X應用程序的Kiosk模式。但是,我不想激活全屏模式。我希望應用程序正常運行,但只需將桌面和菜單/聚光燈區域隱藏在桌面上即可阻止用戶使用它們。我嘗試了各種各樣的選擇,我似乎無法讓它工作。沒有激活全屏模式的Kiosk風格 - OS X

https://developer.apple.com/library/mac/technotes/KioskMode/Introduction/Introduction.html

好像這個代碼的大多數實現需要進入全屏或在目的C.是否有斯威夫特這樣做的沒有進入全屏模式的方法嗎?

  • 更新 - 我想出瞭如何做到這一點!我可以使用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) 
    
    } 
        } 
    } 
    
+0

菜單可以隱藏在首選項中。也許一個腳本可以隱藏它。 –

+0

我能從NSMenu隱藏菜單,但我仍然無法隱藏碼頭。 – cheesydoritosandkale

+0

這些命令會改變碼頭設置,但我不確定如何隱藏它的命令;默認寫com.apple.dock autohide -bool true 默認寫com.apple.dock autohide-delay -float 0 默認寫com.apple.dock autohide-time-modifier -float 0(每個'默認值'之前的換行符) –

回答

0

以下是您要找的內容?

斯威夫特3:

func applicationWillFinishLaunching(_ notification: Notification) { 
    NSApp.presentationOptions = [.autoHideDock, .autoHideMenuBar] 
} 

斯威夫特2:

func applicationWillFinishLaunching(notification: NSNotification) { 
    NSApp.presentationOptions = [.AutoHideDock, .AutoHideMenuBar] 

} 

(代碼中的註釋一切了,或者至少你在這裏包含的代碼)。

+0

真棒!謝謝!!!! – cheesydoritosandkale

0

我想通了,該怎麼辦呢!我可以使用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) 

} 
    } 
}