Swift macOS以编程方式显示系统菜单栏

Swift macOS以编程方式显示系统菜单栏,swift,macos,Swift,Macos,我正在开发一个菜单栏应用程序,它可以打开一个popover视图。我想在应用程序启动时显示popover。如果前台应用程序未处于全屏模式,则此功能非常有效 但是,如果前台应用程序处于全屏模式,POPOFE只是浮动在屏幕中间(显然,因为菜单栏不可见)。理想情况下,我想要一种在应用程序启动时自动显示菜单栏的方法 或者,是否有一种方法至少可以检测前台应用程序是否全屏,以便在这种情况下禁用打开popover 以下是当前代码: import Cocoa @NSApplicationMain class A

我正在开发一个菜单栏应用程序,它可以打开一个popover视图。我想在应用程序启动时显示popover。如果前台应用程序未处于全屏模式,则此功能非常有效

但是,如果前台应用程序处于全屏模式,POPOFE只是浮动在屏幕中间(显然,因为菜单栏不可见)。理想情况下,我想要一种在应用程序启动时自动显示菜单栏的方法

或者,是否有一种方法至少可以检测前台应用程序是否全屏,以便在这种情况下禁用打开popover

以下是当前代码:

import Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
    let statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
    var popover = NSPopover()

    @objc func togglePopover(sender: AnyObject?) {
        if popover.isShown {
            closePopover(sender: sender)
        } else {
            showPopover(sender: sender)
        }
    }

    func showPopover(sender: AnyObject?) {
        if let button = statusItem.button {
            popover.show(relativeTo: button.bounds, of: button, preferredEdge: NSRectEdge.minY)
        }
    }

    func closePopover(sender: AnyObject?) {
        popover.performClose(sender)
    }

    func applicationDidFinishLaunching(_ notification: Notification) {
        statusItem.button?.image = NSImage(named: "MenuIcon")
        statusItem.button?.action = #selector(AppDelegate.togglePopover(sender:))
        popover.contentViewController = PopoverViewController(nibName: "PopoverView", bundle: nil)
        showPopover(sender: nil)
    }
}

当另一个应用程序处于活动状态且全屏显示时,您的应用程序是在什么情况下启动的?@TheNextman它可以通过聚光灯或启动板启动。另外,我注册了一个自定义URL方案,因此可以直接从另一个应用程序全屏模式启动(很可能是浏览器)。