Mac Catalyst 中的透明工具栏
Posted
技术标签:
【中文标题】Mac Catalyst 中的透明工具栏【英文标题】:Transparent Toolbar in Mac Catalyst 【发布时间】:2020-03-05 14:09:57 【问题描述】:我能够使用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 中是否可行?
【问题讨论】:
这应该是可能的,并且现有的解决方案也将通过 App Store 审核流程,因为 Mac App Store 中已经有应用程序。例如。胡萝卜 天气。我很想看到一个简单的解决方案。不明白为什么它不可能开箱即用。它对于外观现代的应用程序非常重要。 检查该链接:developer.apple.com/documentation/uikit/mac_catalyst/… 【参考方案1】:是的,这在 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
#if targetEnvironment(macCatalyst)
windowScene.titlebar?.toolbar?.isVisible = false
windowScene.titlebar?.titleVisibility = .hidden
#endif
【讨论】:
这个线程向我展示了如何隐藏 mac 催化剂应用程序的标题栏,我会问一个问题并得到一个 500 投反对票的炸弹,所以欢呼:) @Benj,我很高兴你发现这个帖子很有帮助!不要犹豫,提出与新软件相关的问题,如果没有适当的文档和 *** 社区,它们总是很麻烦。【参考方案2】:覆盖 func viewDidAppear(_ animated: Bool) super.viewDidAppear(动画)
#if targetEnvironment(macCatalyst)
if let titlebar = self.view.window?.windowScene?.titlebar
titlebar.titleVisibility = .hidden
titlebar.toolbar = nil
#endif
【讨论】:
【参考方案3】:这是一个类似的解决方案:
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, 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
【讨论】:
以上是关于Mac Catalyst 中的透明工具栏的主要内容,如果未能解决你的问题,请参考以下文章
在 Mac Catalyst 项目中未调用 IBAction
通过 Catalyst 工具 Xcode 11 从 Bundle for MacOS App 加载 WKWebView 中的 PDF