【发布时间】:2021-12-09 13:59:47
【问题描述】:
这是 macOS 的问题,而不是 iOS。
MacBook pro 2021 上的 macOS Monterey 首次提供了一个缺口,当处于全屏模式或最大化状态时,它会隐藏部分菜单。为了在这种情况下应用修改后的菜单,我想以编程方式检测缺口。
我该怎么做?在文档中找不到任何内容。
【问题讨论】:
标签: swift objective-c macos
这是 macOS 的问题,而不是 iOS。
MacBook pro 2021 上的 macOS Monterey 首次提供了一个缺口,当处于全屏模式或最大化状态时,它会隐藏部分菜单。为了在这种情况下应用修改后的菜单,我想以编程方式检测缺口。
我该怎么做?在文档中找不到任何内容。
【问题讨论】:
标签: swift objective-c macos
首先,检查您是否在 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
}
}
【讨论】: