Mac Catalyst UITitleBar 覆盖了UI -- 如何解决?

Mac Catalyst UITitleBar covers the UI -- how to resolve?

当 运行 iPad Mac Catalyst iPad 在 macOS 上时,有一个标题栏,我不介意。但它涵盖了 UI 的一部分,作为补偿,我应该将 UI 向下移动该条的高度。我找不到在任何地方找到那个高度的方法。我试过查询它及其 NSToolbar 属性,但没有任何信息提供给我这个基本信息。

我可以毫无问题地隐藏工具栏本身,使用这个:

#if targetEnvironment(macCatalyst)
        if let titlebar = windowScene.titlebar {
            titlebar.titleVisibility = .hidden
            titlebar.toolbar = nil
        }
#endif

这几乎解决了问题,因为一旦标题栏消失,大多数 UI 都可以访问,但是左上角的三个用于关闭和缩放 window 的控件仍在顶部UI 个元素。

你一般是怎么处理这个问题的?

为了让您的 UI 避免标题栏和其他 window chrome,它需要尊重 safeAreaInsets,它告诉您的 UI哪个区域可以安全绘制而不被系统覆盖 UI.