如果您在Dock上进行二次点击,则可以单击Turn Hiding On
选项以自动隐藏Dock。或者,您可以转到System Preferences > Dock
并点击Automatically hide and show the Dock
。
我想模仿我正在制作的应用程序中的功能(基本上是状态栏图标应用程序),最好是在Swift中。
到目前为止我编写的用于启用Dock自动隐藏功能的代码如下:
// Update the value for key "autohide" in com.apple.dock.plist, located in ~/Library/Preferences/.
var dict = NSUserDefaults.standardUserDefaults().persistentDomainForName("com.apple.dock")
dict.updateValue(true, forKey: "autohide")
NSUserDefaults.standardUserDefaults().setPersistentDomain(dict, forName: "com.apple.dock")
// Send notification to the OS.
dispatch_async(dispatch_get_main_queue()) {
CFNotificationCenterPostNotification(CFNotificationCenterGetDistributedCenter(), "com.apple.dock.prefchanged", nil, nil, true)
}
代码的第一部分更新plist文件中的值,我已经确认这是有效的。第二部分向操作系统发送通知,告诉它该plist中的值已经更改,我也确认它已在工作。
然而,这两件事并没有使Dock隐藏起来,让我相信我需要做点其他事情。或者让我解决问题的方法是错的?如何让Dock开始隐藏?
PS:我已经阅读了一些名为CoreDock的私有的,未记录的API,但我想避免这样做,因为它可能会导致很多问题......答案 0 :(得分:1)
使用AppleScript或Scripting Bridge执行此操作几乎肯定会更好。以下脚本打开Dock自动隐藏:
tell application "System Events"
set autohide of dock preferences to true
end tell
您可以使用NSAppleScript
运行该功能。