【发布时间】:2021-06-08 12:52:56
【问题描述】:
我正在开发一个 macOS 应用程序(使用 Swift 和 Storyboard),其窗口的行为类似于 Adobe Creative Cloud 应用程序。经过数小时的研究,我找不到最佳解决方案。
这意味着:
- 应用启动时,主窗口会在状态栏上显示各种菜单,在停靠栏中会出现一个图标,在状态栏中会出现一个图标。
- 当用户点击红色 X 时,主窗口和 Dock 中的图标被隐藏。
- 可以通过单击状态栏图标重新打开应用程序主窗口。停靠图标重新出现。
我尝试了以下方法:
-
通过将
Application is agent (UIElement)设置为YES,我能够关闭应用程序主窗口,同时保持应用程序处于活动状态。但是,应用程序图标不会显示在 Dock 中,并且状态栏左侧也没有菜单。 -
我可以通过单击状态栏图标来启动一个新的应用程序窗口。但是这样做只会打开一个全新的窗口,而不管是否已经显示了一个窗口(我只想显示一个窗口)。
let storyboard = NSStoryboard(name: "Main", bundle: nil)
guard let window = storyboard.instantiateController(withIdentifier: .init(stringLiteral: "main")) as? WindowController else { return }
window.showWindow(self)
非常感谢任何可以提供帮助的人!
【问题讨论】:
-
@Willeke 你没有看问题的最后一部分
-
我确实阅读了您的问题。是什么让你认为我没有?
-
@Willeke 这个问题是关于从菜单栏中的
NSStatusItem停用和激活应用程序,包括隐藏/取消隐藏停靠图标,而您建议的副本是关于标准的关闭和打开窗口场景。 -
问题是“如何使 macOS 应用程序窗口在关闭并使用菜单栏重新打开时隐藏?”。这是关于一个窗口。