在macOS Monterey和更高版本中检测MacBook notch



这个问题是针对macOS的,不是针对iOS的。

MacBook pro 2021上的macOS Monterey首次提供了一个缺口,可以在全屏模式或最大化状态下隐藏部分菜单。为了在这种情况下应用修改后的菜单,我想以编程方式检测缺口。

我该怎么做?

首先,检查您是否在macOS 12或更高版本上运行,因为api仅在macOS 12或更高版本上可用。您可以使用if #available(macOS 12, *)检查

然后,对于感兴趣的NSScreen,检查这些属性之一。他们也应该给出相同的(是/否)答案:

  • safeAreaInsets.top非零?
  • auxiliaryTopLeftArea非空?
  • auxiliaryTopRightArea是非空的吗?
  • 例如:

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

最新更新