文章

从用 Mac Catalyst 构建的 Mac App 中移除标题栏

通过移除标题栏,让内容能够从窗口的顶部开始显示。

概览

默认情况下,用 Mac Catalyst 构建的 Mac App 会在窗口的顶部显示一个标题栏。标题栏与窗口中的内容之间由一条水平线分隔开来。

“信息”和“通讯录”等一些 Mac App 在主窗口中没有标题栏。这时,窗口顶部仅显示“关闭”、“最小化”和“缩放”按钮,并且这些按钮与窗口中的内容之间没有分隔符。在这个 UI 设计中,内容区域会填满整个窗口的高度。

下图用两个窗口说明了这些样式。第一个窗口显示了一个标题栏,而第二个窗口中没有。

两个窗口的截屏,一个窗口叠放在另一个窗口上,每个窗口的内容区域均为深色背景。

移除标题栏

如果你选择设计不带标题栏的窗口,则必须将标题栏从窗口中移除。要移除标题栏,请将标题栏的 titleVisibility 属性设置为 UITitlebarTitleVisibility.hidden,并将 toolbar 属性设置为 nil。以下代码显示了如何在设置新场景期间从窗口中移除标题栏及其分隔符。


func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
    
    guard let windowScene = (scene as? UIWindowScene) else { return }
    
    #if targetEnvironment(macCatalyst)
    if let titlebar = windowScene.titlebar {
        titlebar.titleVisibility = .hidden
        titlebar.toolbar = nil
    }
    #endif


}

另请参阅

用户界面