如何让macOS应用的警告对话框显示在应用所在屏幕而非其他屏幕?
如何让macOS应用的警告对话框显示在应用所在屏幕而非其他屏幕?
我太懂这种跨屏弹窗的烦躁了!尤其是多显示器办公的时候,好好在左边屏用着应用,弹窗突然跳到最右边,真的很打断思路😮💨
先给你理清楚macOS的默认逻辑:系统默认会把警告对话框显示在主显示器或者当前获得焦点的显示器上——这就是为什么你的弹窗会跑到最右边屏幕的原因,大概率那是你的主显示器?不过这个设计确实不太贴合多屏办公的实际需求。
下面给你几个可行的解决办法:
针对单个应用的终端命令调整(NSUserDefaults)
部分应用支持通过修改默认设置,让弹窗跟随应用主窗口。你可以打开终端,运行以下命令(记得替换成你目标应用的信息):- 先查应用的Bundle ID,比如要调整Safari,就输入:
osascript -e 'id of app "Safari"'
会得到类似com.apple.Safari的ID - 然后运行设置命令:
defaults write com.apple.Safari NSAlertAlwaysDisplaysOnMainScreen -bool false - 重启目标应用,之后弹窗应该会和应用窗口同屏了。
注意:不是所有应用都支持这个设置,如果是某些硬编码了弹窗位置的应用,这个方法可能无效。
- 先查应用的Bundle ID,比如要调整Safari,就输入:
全局调整:借助第三方工具
macOS目前没有原生的全局设置能让所有应用弹窗都跟随窗口,但可以用第三方工具来实现,比如BetterSnapTool或者Stay这类窗口管理工具,它们大多支持设置弹窗的位置规则,让弹窗自动附着在所属应用的屏幕上。记得从App Store或者官方官网下载,保证安全性。临时应急小技巧
如果弹窗已经跑去别的屏幕了,你可以按住弹窗的标题栏(如果有的话)直接拖到当前应用所在的屏幕;另外,触发弹窗前先点击一下应用的主窗口,确保它是当前获得焦点的窗口,有时候弹窗跑屏就是因为之前焦点在别的显示器的应用上。
你的显示器布局是左中右排列,应用运行在最左侧屏幕,警告对话框却出现在最右侧——这种场景下,上面的方法应该能帮你解决问题。
备注:内容来源于stack exchange,提问作者Kevv Keka
相关产品推荐
相关产品推荐

