如果二次单击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中的一个值已更改,我也已确认该值正在工作。
然而,这两件事并没有使码头隐藏起来,使我相信我需要做些别的事情。或者我对这个问题的处理方法是错误的?我怎么才能让码头开始藏起来?
注:我读到一些关于一个私有的,未经文档化的api,称为coredock,但我想避免这样做,因为它可能会导致许多问题…
最佳答案
几乎可以肯定的是,使用applescript或脚本桥来实现这一点更好。以下脚本将打开停靠自动隐藏:
tell application "System Events"
set autohide of dock preferences to true
end tell
您可以使用
NSAppleScript
运行它。