Swift - NSMenu Предмет Поповер не получает Фокуса

Поэтому я столкнулся со странной проблемой, которую довольно сложно объяснить, но я постараюсь.

У меня есть пункт меню статуса:

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 и позволил ему вызвать действие.

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

до сих пор все работает просто замечательно, и, как известно, ican взаимодействует со всем, и все хорошо и круто. Я могу щелкнуть значок, меню открывается и отображает все, что я хочу.

Но теперь к проблеме. Если я открываю Popover на кнопке (которая работает просто отлично) и Popover открыт, я не могу взаимодействовать с Popover. Я все еще могу взаимодействовать с меню и кнопками, и все круто. Но как только я нажимаю в Popover, все скрывается. (он не падает или что-то в этом роде, просто закрывает поповер, меню и т. д.)

Я открываю Popover, как это. в init:

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

в testPopoverMethod:

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

Так что я попробовал много вещей, таких как "resignFirstResponder", "становление FirstResponder" и, конечно, я пытался изменить поведение, но я просто не могу решить эту проблему.

Вот снимок экрана http://imgur.com/Wj95eQw если я щелкну где-нибудь в Popover, все будет скрыто, не имеет значения, где, и если есть кнопка или текстовое поле, не имеет значения...

Как я могу это исправить?

1 ответ

Пытаться

func testPopover(sender: AnyObject?) {
        NSRunningApplication.currentApplication().activateWithOptions(NSApplicationActivationOptions.ActivateIgnoringOtherApps)
        Popover.showRelativeToRect(button.bounds, ofView: button, preferredEdge: NSMinYEdge)
    }
Другие вопросы по тегам