左键单击菜单栏额外未打开

仍然

我有一个在 macOS 菜单栏上显示自定义视图的应用程序。单击自定义视图时,我想显示上下文菜单 (NSMenu)。

我的代码如下所示:

private let statusItem = NSStatusBar.system().statusItem(withLength: NSVariableStatusItemLength)
private var timer: Timer?
private var view: MenuView!
private var menu: NSMenu!
private let popover = NSPopover()
private var popoverController: PopoverViewController?

func applicationDidFinishLaunching(_ aNotification: Notification)
{
    self.view = createView()
    self.statusItem.view = self.view

    self.menu = NSMenu()
    self.menu.addItem(NSMenuItem(title: "Quit", action: nil, keyEquivalent: ""))
    self.statusItem.menu = self.menu

    self.statusItem.menu = menu
}

但是,当我单击视图时,菜单并没有像我期望的那样显示(好吧,它根本没有显示)。当我不使用自定义视图而仅设置图像时,单击它时会打开上下文菜单。使用自定义视图时如何显示菜单?

瓦迪安

如果使用自定义视图,则您有责任处理所有事件,绘图和突出显示。

init(frame:视图) 方法中传递NSStatusBar实例。将菜单分配给视图而不是statusItem

至少你必须覆盖 mouseDown

override func mouseDown(with theEvent: NSEvent) {
    statusItem.popUpMenu(menu!)
    needsDisplay = true
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

KendoUI菜单栏在单击时打开

来自分类Dev

菜单栏未显示

来自分类Dev

Applescript:单击特定的菜单栏项

来自分类Dev

单击菜单栏上的jQuery对话框作为登录框打开

来自分类Dev

在Qt C ++中单击菜单栏中的元素时如何打开新的QDailog窗口

来自分类Dev

Nemo菜单栏未显示

来自分类Dev

右键单击时菜单栏中的弹出菜单

来自分类Dev

Javascript:检测左键单击打开的上下文菜单

来自分类Dev

菜单栏中未显示的菜单项

来自分类Dev

当单击菜单栏中的A href链接时,如何在体内打开封闭的手风琴?-HTML

来自分类Dev

不能单击Gnome面板和菜单栏。

来自分类Dev

可可应用程序菜单栏不可单击

来自分类Dev

目标C-菜单栏图标单击事件

来自分类Dev

如何单击网站上的菜单栏选项?

来自分类Dev

不能单击Gnome面板和菜单栏。

来自分类Dev

如何使整个菜单栏项目+区域可单击jQuery

来自分类Dev

单击菜单栏上的更改字体真棒图标

来自分类Dev

使用Vaadin从菜单栏打开pdf文件

来自分类Dev

如何在Flutter中打开侧边菜单栏?

来自分类Dev

如何使用菜单栏在屏幕上打开NSWindow

来自分类Dev

显示菜单栏

来自分类Dev

目录菜单栏

来自分类Dev

CRM 2013黑色/ Metro顶部菜单栏未更改

来自分类Dev

LibreOffice 4.0的菜单栏未与Unity集成

来自分类Dev

Android Studio 中未显示菜单栏

来自分类Dev

菜单栏和图像/按钮未正确对齐

来自分类Dev

单击“打开”按钮时菜单未打开

来自分类Dev

在菜单图标上未打开导航抽屉,在工具栏上单击

来自分类Dev

开始菜单+通知栏未打开