解决升级 macOS 15.2 后一直显示「屏幕镜像」图标的问题

Photo by Ben Kolde on Unsplash
Photo by Ben Kolde on Unsplash

macOS 15.2 的新功能:「连接到电视时」

苹果在 macOS 15.2 中引入了一个新功能,外接「电视」当显示器时「系统设置」里的「显示器」设置中会出现一个选项让你设置这台电视显示为镜像、拓展、还是单窗口/APP:

上面的「连接到电视时」其实对应了 macOS 15.2 中 AirPlay 投屏的新功能,即让 HDMI / Type C / 雷雳接入的显示器/电视也有和 AirPlay 投屏一样的三个可选项:

但是这个新功能出了 Bug:

  • macOS 15.2 不能正确判断外接屏幕是「显示器」还是「电视」,默认为「电视」,即默认 「 Display Is TV = 1 」;
  • 「连接到电视时」的选项不能实际生效,默认并被限制为「用作拓展显示器」,即默认「 Display Is Exclusive =1 」。

这导致外接显示器或电视的 Mac 设备都有可能在菜单栏出现「屏幕镜像」图标,并提示现在使用的是「屏幕拓展」模式,在 Mac mini 上,这相当于将唯一的屏幕镜像到它本身:

Photo by @kuentin on V2EX
Photo by @kuentin on V2EX

解决「停止拓展」后屏幕无法显示

很多同学升级完发现菜单栏这个紫色图标后第一反应是停止拓展,然后:

  • 内置屏幕的 Mac 设备在「屏幕镜像」中点击「停止拓展」后会导致这块外接屏幕不再显示,需要删除下面的配置文件并重启才能再次使用这块屏幕:

/Library/Preferences/com.apple.windowserver.displays.plist

  • Mac mini 这种无内置屏幕的设备则「停止拓展」按钮不生效,「屏幕镜像」的紫色图标一直显示在菜单栏。(极少的情况下「停止拓展」能生效,这时只能通过「屏幕共享」或 VNC 来访问了……

隐藏菜单栏的「屏幕镜像」图标

如果只是想隐藏「屏幕镜像」图标,可以在下面两个方法中选一个:

  • CMD+鼠标左键选择并往下拖动「屏幕镜像」图标直到图标上出现「X」后松开可以在菜单栏直接隐藏掉「屏幕镜像」图标。
  • 「系统设置」里的「控制中心」中找到「屏幕镜像」选择「不在菜单栏显示」。

  
但这是「眼不见为净」,macOS 仍在将外接显示器/电视作为屏幕拓展使用,需要用下面的办法解决:

将 macOS 外接屏幕设置为「电脑显示器」

根据 Reddit 上的帖子「macOS 15.2 has a new setting when using a tv as your monitor」,更好的办法是通过 BetterDisplay 让 macOS 将接入的显示器/电视类型识别为「电脑显示器」而不是「电视」从而绕过这个 Bug:

  • 在 BetterDisplay 的设置里开启「编辑此显示器型号的系统配置」:

  • 往下拖到「已编辑显示角色」,选择为「电脑显示器」:

  • 如果没有生效,点击下面的「将系统配置标记为未应用」,然后点击左侧弹出红色「有些系统配置更改尚未应用」提示中的「应用」:

  • 这样设置过后,为了不影响「屏幕镜像」的正常使用,如果已经通过「眼不见为净」法隐藏了菜单栏的「屏幕镜像」图标,可以再次在「系统设置」里的「控制中心」中找到「屏幕镜像」并选择「启用时显示」:

  • 同时因为被系统识别为「电脑显示器」,外接电视也能使用「夜览」和「亮度调节」了:

升级 macOS 15.3

Update 2025/02/07:macOS 15.3 已修补此 Bug。

Comments
Write a Comment
  • 1968581948 reply

    没有用,删掉后还是那样

    • @1968581948 👌

  • Zhaohu0224 reply

    我也是外接显示器不限新点了停止镜像,然后再也不显示了。但是终端在删除/Library/Preferences/com.apple.windowserver.displays.plist的时候,显示permission denied。

    资源库也找不到com.apple.windowserver.displays.plist这个文件

    求助该怎么办呢?

    • @Zhaohu0224

      Hi

      1、直接访达删掉就好。

      「permission denied」需用超级用户权限,既在终端命令前面加 sudo:

      sudo rm -rf /Library/Preferences/com.apple.windowserver.displays.plist

      2、访达里「/Library/」 是系统目录,「~/Library/」 是用户目录,可能路径搞错了?

  • Zhaohu0224 reply

    你好 根据您说的我找到了 系统的library,删除了com.apple.windowserver.displays.plist,彻底解决了这个问题,太感谢了

    • @Zhaohu0224 🎉👍

  • Heqiqihe77 reply

    额,我新买了一个ehomewei的17.3'的便携屏,被识别成TV而不是显示器。plist删掉试了不行,通过betterdisplay设置为显示器也试了,也还是不行(我检查了设置项,确实设置成功了,但还是TV,系统也重启了,也都还是不行)。我还有一个他们家的15.6‘的便携屏,通过betterdisplay设置为tv或显示器就都能生效。 问题还可能出在哪儿哇?

    • @Heqiqihe77 不知道苹果是从 EDID 里认 TV 还是怎么处理的,macOS 版本升级了吗?

      • Heqiqihe77 reply

        @Yi 升了,15.3,怎么折腾都搞不定。betterdisplay写入的那个not TV不是在EDID里么?ChatGPT说是跟EDID里的色彩模式有关,我也check了,色彩模式也没问题。

        • @Heqiqihe77 感觉 BetterDisplay 应该不是实际写 EDID 而是覆盖/修改 plist,看一下「显示器名字」-「更多信息…」里 Display Is TV 项值是什么。(凭记忆描述的,v3.4.1 在我这点更多信息会假死……)

          • Heqiqihe77 reply

            @Yi 1. 我把EDID取出来了,用两种不同方式解析了,is TV确实不在里面,是在plist里。 2. 我check了被识别为TV的屏幕在betterdisplay里的 is TV的值,确实是no. 但还是识别为TV。奇怪的是另外那个正常的15.6‘的屏幕,没有is TV 这个项,也仍然正常。

            • @Heqiqihe77 要不,试试用时间机器备份后重置 SMC、PRAM/NVRAM?

              • Heqiqihe77 reply

                @Yi 问了客服,他们家这款屏幕很多人反馈这个问题,不止我一个,问题应该是出在屏幕跟mac之间的协议适配上。重置这些我感觉应该没帮助。

  • Jation reply

    事实上我升级到15.3才发现此bug,我一开始以为是线的问题还花钱买了条新线,最重要的是我两台mac怼同一个显示器都是这样,我还以为显示器坏了准备把显示器扔了……

  • mootii reply

    我也遇到同样的问题。买了一个杂牌的便携屏挂旁边当副屏,无论是 HDMI 还是 Type-C 接入,都是被识别成 TV,挂在「屏幕镜像」里面。

    用 BetterDisplay 设置了「电脑显示屏」且激活&重启,但是没有生效。

    倒是随手把这杂牌便携屏的「显示器名称」改了生效了。现在也不知道咋弄,相对于这个问题,这副屏的颜色和主屏差很多,怎么调都不行,这个问题更大😓