Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos Swift-菜单项Popover未获得焦点_Macos_Swift_Nsmenu_Nsviewcontroller_Nspopover - Fatal编程技术网

Macos Swift-菜单项Popover未获得焦点

Macos Swift-菜单项Popover未获得焦点,macos,swift,nsmenu,nsviewcontroller,nspopover,Macos,Swift,Nsmenu,Nsviewcontroller,Nspopover,所以我遇到了一个奇怪的问题,这有点难以解释,但我会努力的 我有一个状态菜单项: let statusItem = NSStatusBar.systemStatusBar().statusItemWithLength(-2) 它包含一个菜单: let menu = NSMenu() statusItem.menu = menu } 现在,我向其中添加了自定义菜单项,它可以包含按钮或我想要的任何内容: var newController = storyBo

所以我遇到了一个奇怪的问题,这有点难以解释,但我会努力的

我有一个状态菜单项:

let statusItem = NSStatusBar.systemStatusBar().statusItemWithLength(-2)
它包含一个菜单:

        let menu = NSMenu()
        statusItem.menu = menu }
现在,我向其中添加了自定义菜单项,它可以包含按钮或我想要的任何内容:

    var newController = storyBoard!.instantiateControllerWithIdentifier("testViewController") as! testCustomViewController
    var menueItem = NSMenuItem(title: title, action: action, keyEquivalent: key)
    menueItem.view = newController.view
    statusItem.menu?.addItem(menueItem)
在那之后,我把一个testButton放到菜单中,让他调用一个动作

    @IBAction func testClick(sender: NSButton) {
    appDelegate.testPopover(sender)
}
到目前为止,一切都很好,我可以与一切互动,一切都很好,很酷。 我可以点击图标,菜单打开并显示我想要的任何内容

但现在来谈谈问题。 如果我在按钮上打开了一个Popover(效果非常好),并且Popover是打开的,我就不能与Popover交互。 我仍然可以与菜单和按钮互动,一切都很酷。 但只要我点击流行音乐,一切都隐藏了。(它没有崩溃或其他什么,只是关闭了popover、menues等)

我像这样打开府绸。 在init中:

let Popover = NSPopover()
Popover.contentViewController = storyBoard!.instantiateControllerWithIdentifier("test") as! NSViewController
在TestPoOverMethod中:

Popover.showRelativeToRect(button.bounds, ofView: button, preferredEdge: NSMinYEdge)
所以我尝试了很多东西,比如“辞职第一响应者”、“成为第一响应者”和ofc,我试图改变行为,但我无法解决这个问题

这是截图 如果我点击Popover中的任何地方,所有东西都会隐藏,无论在哪里,如果有按钮或文本字段,都不会有任何区别

如何解决此问题?

试试看

func testPopover(sender: AnyObject?) {
        NSRunningApplication.currentApplication().activateWithOptions(NSApplicationActivationOptions.ActivateIgnoringOtherApps)
        Popover.showRelativeToRect(button.bounds, ofView: button, preferredEdge: NSMinYEdge)
    }

我相信我知道问题所在。我的NSMenu将弹出框中的点击数计算为“外部”点击数,因此菜单关闭,弹出框也随之消失。但我怎样才能让菜单保持打开?没人能帮上忙吗-/