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