斯威夫特 - NSMenu项目Popover没有得到焦点

时间:2015-07-30 14:23:08

标签: macos swift nsmenu nsviewcontroller nspopover

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

我有一个状态菜单项:

let statusItem = NSStatusBar.systemStatusBar().statusItemWithLength(-2)

它包含一个NSMenu:

        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放入了menue,并让他调用一个Action。

    @IBAction func testClick(sender: NSButton) {
    appDelegate.testPopover(sender)
}

到目前为止,所有的作品都很棒,而且作为意志,ican与一切互动,一切都很好,很酷。 我可以点击图标,菜单打开并显示我想要的任何内容。

但现在问题。 如果我在按钮上打开一个Popover(它工作得很完美)并且Popover是打开的,我就无法与Popover交互。 我仍然可以与菜单和按钮互动,一切都很酷。 但是只要我点击Popover,就会隐藏起来。 (它不会崩溃或什么的,它只是关闭popover,menues等)

我像这样打开Popover。 在init:

let Popover = NSPopover()
Popover.contentViewController = storyBoard!.instantiateControllerWithIdentifier("test") as! NSViewController

在testPopoverMethod中:

Popover.showRelativeToRect(button.bounds, ofView: button, preferredEdge: NSMinYEdge)

所以我尝试了很多东西,例如" resignFirstResponder"," becomeFirstResponder"我尝试改变行为,但我无法解决这个问题。

继承人的屏幕截图 http://imgur.com/Wj95eQw 如果我点击Popover中的任何地方都隐藏,无论在哪里,如果是按钮或文本字段,没有任何区别......

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

尝试

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