这个问题是针对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
}
}