把 Mac 的窗口投到 iPhone 或 iPad 上,目前可靠的做法有两条,用系统自带的屏幕共享配上 iOS 端的远程桌面客户端,或者用 Sidecar 把 iPad 变成 Mac 的第二块屏。两条路的能力边界差别很大。屏幕共享能把任意一个应用窗口单独投出去,iPhone 和 iPad 都能用,代价是要保持网络连通并做好权限配置。Sidecar 延迟更低,在 iPad 上还能用触控和 Apple Pencil 操作 Mac 应用,但它只支持 iPad。
先确认设备组合能不能用
动手前把前提核清楚,避免配到一半才发现不支持。
- Sidecar 需要 iPad 与 Mac 使用同一个 Apple 账号并开启双重认证。
- Sidecar 用数据线直连更稳定,可以避开无线干扰带来的画质波动。
- 屏幕共享对查看端限制更少,iPhone 与 iPad 都能连。
- 想让共享走高性能模式,主机需要是 Apple 芯片并运行 macOS 14 或更新版本。
- 非 Apple 芯片的 Mac 上高性能模式不可用,连接会回落到标准模式。
路线一,用屏幕共享把单个窗口投出去
这条路的优势是可以只投一个窗口,不用把整个桌面暴露出去。
- 在 Mac 上打开系统设置,进入通用里的共享面板,打开屏幕共享开关。
- 点击屏幕共享右侧的信息按钮,记下当前 Mac 的名称或地址。
- 在同一面板里配置允许访问的用户,建议单独建账号,不要直接用主账号。
- 在 iPhone 或 iPad 上安装一个支持 VNC 的客户端。
- 在客户端里填入第 2 步的地址和用户名,首次连接会要求输入密码。
- 连接成功后进入会话窗口,在显示选项里选择只显示指定应用窗口,而不是整个桌面。
- 如果双方都是 Apple 芯片且系统版本满足要求,在 Mac 端共享设置里选择高性能模式,画面色彩与延迟会明显改善。
第 6 步是关键。共享单个窗口既降低了被旁人看到其他内容的可能,也减少了需要传输的像素量,在移动网络下差别很明显。
路线二,用 Sidecar 把 iPad 变成第二块屏
Sidecar 会把 iPad 注册成一块扩展显示器,它复制不了 Mac 屏幕上已有的画面。原本显示的窗口不会自动出现在 iPad 上,你需要手动把窗口拖过去。触控和 Apple Pencil 可以直接操作 Mac 应用,这也是它比远程桌面顺手的地方。只想在 iPad 上看某个窗口,把窗口拖过去即可。
自研采集链路要注意什么
要自己写投屏工具,采集这层有几个具体问题。macOS 上的窗口采集用 SCShareableContent 获取可采集的窗口、应用与显示器,再用 SCContentFilter 指定只抓某个窗口,对应的构造方法按窗口独立创建过滤器。SCStreamConfiguration 负责输出尺寸、像素格式、色彩空间与帧率,sourceRect 与 destinationRect 会同时影响裁剪和缩放。窗口模式采集要关注被遮挡部分,系统提供了是否忽略裁剪区域外内容的开关,选错会出现内容缺失。从 macOS 15 开始,屏幕录制类应用会定期弹出权限提醒,后台长期运行的采集程序要预期到这一点。
常见卡点和判断标准
- 连不上,先确认 Mac 的共享服务已打开,再检查路由器是否开了客户端隔离。
- 画面卡顿,高性能模式要求主机为 Apple 芯片,有线连接或稳定 Wi-Fi 影响很大。
- 只看到黑屏,多半是采集权限没授予,去隐私与安全性里的屏幕录制列表确认。
- 窗口投出去但比例不对,检查客户端的缩放设置与
scalesToFit一类参数是否需要调整。
常见问题
问,iPhone 能不能当 Sidecar 的副屏。Sidecar 面向 iPad,iPhone 走屏幕共享这条远程桌面的路。
问,共享单个窗口别人还能看到其他内容吗。共享窗口之外的内容不会传输,共享整个桌面时会全部可见,配置时要区分这两种模式。
问,性能大概到什么程度。高性能模式对主机机型和系统版本有要求,具体条件随系统版本变化,需要查当前系统说明。延迟受网络与分辨率影响,建议先用有线方式测一遍再决定是否长期用。