简短回答:macOS 没有能让 Dock 固定在一块屏幕上的设置。它只是在按 Apple 设计的方式运作。
有三种变通方法,每一种都会牺牲别的东西。以下逐一列出,并清楚说明各自的代价。
Dock 不会固定在某一块屏幕上,它会跟随你的指针。把光标推到任意一台显示器的底部边缘并停留片刻,Dock 就会移动到那一块。“系统设置”里没有任何设置能让它固定不动。
这是预期中的行为,不是漏洞,也不代表任何东西坏了。在单一显示器上你永远不会注意到,因为它没有别的地方可去。加上第二台显示器,同样的规则就变成了:Dock 会出现在你最后一次伸手去够什么东西的地方。
如果你在第二块显示器上一直全屏使用浏览器或视频,情况会更糟,因为那块屏幕的底部边缘正是你去够控件的地方。
“系统设置”、“桌面与 Dock”,滚动到“调度中心”,关闭“显示器具有各自的空间”。退出登录再重新登录。
你的显示器现在会像一个大桌面一样运作,Dock 会固定在主显示器上并保持不动。
它的代价是什么。这是列表中代价最大的一项。每块屏幕不再拥有各自的空间,全屏 App 不再按屏幕单独运作,在一台显示器上把视频设为全屏会让其他显示器变黑。对很多多显示器配置来说,这个问题比最初的问题还要糟糕。
“系统设置”、“桌面与 Dock”、“屏幕上的位置”,选择“左侧”或“右侧”。
在侧边缘,Dock 被触发的机会要少得多,因为你很少会不小心把指针推到显示器排列的外侧边缘,而底部边缘却是你不断经过的地方。
它的代价是什么。Dock 的布局会和你原本选择的不一样,而且这只是缓解问题,并没有真正解决。移动它依然是可能的。
打开“系统设置”、“显示器”,点按“排列”,把白色的菜单栏条拖到你想作为主显示器的那台显示器上。Apple 称它为主显示器,大多数人叫它主屏幕,就是承载菜单栏的那一块。
单独使用它并不能阻止 Dock 移动。它决定的是 Dock 默认停留的位置以及它会返回的位置,所以更适合和解决办法 1 搭配使用,而不是取代它。
大多数讨论这个问题的文章都会推荐这个:
defaults write com.apple.dock autohide-delay -float 9999999; killall Dock
最初的想法是把 Dock 转移前的延迟拉得足够长,长到实际中几乎不会发生。这个办法确实管用了很多年。
在当前的 macOS 上,它并不可靠,甚至可能起到反效果。自 Sonoma 以来的报告显示,Dock 在显示器之间移动得更快,而不是更慢。就连仍在推荐它的文章现在也都附带了这条警告。如果你已经运行过它,用以下命令撤销:
defaults delete com.apple.dock autohide-delay; killall Dock
这一点值得了解,因为它在好几个网站上都是这个问题的头号搜索结果,而且它已经过时了。
指针规则能解释大部分情况,但不是全部。有三种情况会在你根本没靠近底部边缘时移动 Dock。
睡眠之后,或拔掉显示器之后。当显示器消失又重新出现时,macOS 会重建排列方式,Dock 会落在当前作为主显示器的那一块上。如果你的外接显示器唤醒速度比 Mac 慢,内置屏幕会短暂地成为唯一存在的显示器,等外接显示器恢复后,Dock 依然会留在内置屏幕上。这一点没有相关设置。在“显示器”的“排列”里把外接显示器设为主显示器,能让它更常落在正确的位置,但不是每次都有效。
合盖模式。合上盖子、Mac 连接外接显示器时,就只剩一块屏幕,Dock 因此表现正常。打开盖子后,你又回到了双显示器和指针规则的状态下。如果 Dock 在你打开盖子的一瞬间跑到笔记本屏幕上,原因就在这里。
Sidecar 以及把 iPad 用作第二显示器。iPad 也算作一台显示器,因此 Dock 会移动到它上面。这常常让人措手不及,因为 iPad 有自己的 Dock,Mac 的 Dock 出现在它上面看起来像是出了故障,其实并没有。
了解这个特性之后它就很有用了。要把 Dock 发送到某台特定的显示器,把指针推到那块屏幕的底部边缘,停留一两秒。要推过边缘,而不是停在边缘上。Dock 就会移动过去。
如果没有反应,可能是指针没有推得足够靠下。看起来光标已经停在屏幕边缘时,请继续推, 因为触发点其实比看起来的屏幕边界还要靠外一点。
大家真正想要的是一项能说“把 Dock 固定在这块屏幕上”的设置,而 macOS 从来没有过这样的设置。上面每一种解决办法起作用的方式,都是移除产生这种情况的机会,而不是真正回应这个请求。
Still Dock 补上了这项设置。它是一款锁定你 Mac Dock 的 App。选择你想让 Dock 停留的显示器,它就会一直留在那里,既不用关闭独立空间,也不用把 Dock 移到你没有选择的边缘,也不需要一条两个 macOS 版本前就已经失效的终端命令。
它同时存在于直接下载版和 Mac App Store 版中,与大小、位置、隐藏与显示以及内容的锁定并列。
希望 Dock 能出现在每块屏幕上?这个问题有个简短的答案:能让 Dock 在所有屏幕上显示吗?
不能。macOS 一次只在一块屏幕上显示一个 Dock,没有任何设置或第三方应用能改变这一点。如果你搜索的是如何让 Dock 在所有屏幕上显示,这就是答案,而你很可能看到的其实是 Dock 在显示器之间跟随你的指针移动。本指南要解决的正是这个问题。
因为显示器恢复的速度各不相同。如果外接显示器唤醒得比 Mac 慢,内置屏幕会短暂地成为唯一的显示器,Dock 就会停留在它落地的地方。把外接显示器设为主显示器有帮助,但并非每次都能解决问题。
会的,任何拥有不止一台显示器的 Mac 上都会发生。这是标准的 macOS 行为,不是你的设备、显示器或连接线出了故障。
因为全屏控件位于屏幕底部,所以你会把指针推到那个正好召唤出 Dock 的边缘。这是大家遇到这个问题最常见的方式。
它会显著改变它们。全屏 App 不再按屏幕单独运作,一个 App 进入全屏可能会让你其他显示器变黑。先试用一天,再决定是否采用它。
不是的,那是另一个问题,原因也不同,是分隔线作为拖动把手造成的。参见为什么你的 Dock 总在改变大小。Dock 在不同像素密度的显示器之间也会改变大小,这一点在显示器指南中有说明。
有三款应用能解决这个问题:DockLock、LockMyDock 和 Still Dock,各自针对不同的问题打造。DockLock 与 Still Dock 对比说明了每款各自的作用,包括 DockLock 走得更远的地方,以及 LockMyDock 所处的位置。