electron **功能请求** :添加MacBook刘海区域检测

83qze16e  于 3个月前  发布在  Electron
关注(0)|答案(8)|浏览(51)

预检清单

问题描述

随着新款 MacBook Pro 的推出,苹果引入了用于摄像头 shell 的显示刘海。这个刘海可能会溢出全屏窗口的内容。为了提供不显眼的应用程序视图,我们需要检测刘海的位置,以便我们可以将任何内容移开。

建议的解决方案

根据指南 https://developer.apple.com/design/human-interface-guidelines/macos/app-architecture/fullscreen-mode/,有一个 API safeAreaInsets、auxiliaryTopLeftArea 和 auxiliaryTopRightArea 可以检测到刘海所占用的空间。通过标准的 Electron API 公开这些值将很有帮助。

考虑过的替代方案

可以有一个单独的 node 模块,但这样不太方便。

其他信息

  • 没有回复
ejk8hzay

ejk8hzay1#

当我的新MacBook Pro到货时,我可以看看这个。

ivqmmu1c

ivqmmu1c2#

@zarubond MacOS实际上通过在菜单栏位置制作一个假的边框来防止新MacBook的刘海被全屏窗口遮挡。但是,由于苹果有专门用于防止遮挡的API,也许系统允许你在设置中禁用这个假边框功能?如果是这样的话,我认为你的请求绝对是一个好主意。

k5hmc34c

k5hmc34c3#

官方支持"缩放以适应内置摄像头" - https://support.apple.com/en-us/HT212842;这可能有帮助吗?

2skhul33

2skhul334#

实现代码:

extension NSScreen {
    var hasTopNotchDesign: Bool {
        guard #available(macOS 12, *) else { return false }
        return safeAreaInsets.top != 0
    }
}

作者: https://stackoverflow.com/a/69688872/6596777

wr98u20j

wr98u20j5#

考虑到全屏应用位于刘海下方,添加此API几乎没有实用价值。

z6psavjg

z6psavjg6#

考虑到全屏应用位于刘海下方,添加这个API几乎没有实用价值。实际上,在Electron应用中了解刘海位置是有一定用处的,可以参考以下内容:

  • 如何显示(VSCode)

  • 如何隐藏(XCode)

3htmauhk

3htmauhk7#

@edoardoc, 重现步骤是什么?

jgzswidk

jgzswidk8#

使用VSCode,你需要:

然后切换全屏尺寸

从系统设置中自动隐藏菜单栏:

同时使用默认屏幕分辨率

  • 在Macbook Air M2上测试了Ventura*

PS:如果你需要,我可以帮忙测试

相关问题