Mac Catalyst中的透明工具栏

通过SceneDelegate.swift,我可以在Mac Catalyst中创建一个统一的工具栏:

// Use a UIHostingController as window root view controller.
if let windowScene = scene as? UIWindowScene {
    let window = UIWindow(windowScene: windowScene)
    window.rootViewController = UIHostingController(rootView: contentView)
    // hide the titlebar
    windowScene.titlebar?.toolbar = NSToolbar()
    windowScene.titlebar?.titleVisibility = .hidden
    ...
}

但是我想使工具栏变得透明,如以下示例所示: https://lukakerr.github.io/swift/nswindow-styles#11-transparent-toolbar-without-seperator

在Mac Catalyst中甚至有可能吗?

wshguofeng 回答:Mac Catalyst中的透明工具栏

是的,这在Mac Catalyst中是可能的。在您的SceneDelegate.swift文件中,将工具栏和标题可见性分别设置为false.hidden

func scene(_ scene: UIScene,willConnectTo session: UISceneSession,options connectionOptions: UIScene.ConnectionOptions) {
    guard let windowScene = (scene as? UIWindowScene) else { return }

    windowScene.titlebar?.toolbar?.isVisible = false
    windowScene.titlebar?.titleVisibility = .hidden
}
,

这是一个类似的解决方案:

func scene(_ scene: UIScene,options connectionOptions: UIScene.ConnectionOptions) {

guard let windowScene = (scene as? UIWindowScene) else { return }

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

}
,

覆盖func viewDidAppear(_动画:布尔){ super.viewDidAppear(动画)

    #if targetEnvironment(macCatalyst)
    
    if let titlebar = self.view.window?.windowScene?.titlebar {
            titlebar.titleVisibility = .hidden
            titlebar.toolbar = nil
        }
    #endif
    
    
}
本文链接:https://www.f2er.com/3134568.html

大家都在问