gpt4 book ai didi

macos - Swift - NSMenuItem Popover 没有获得焦点

转载 作者:行者123 更新时间:2023-11-28 13:09:56 24 4
gpt4 key购买 nike

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

我有一个状态菜单项:

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 放入菜单中,让他调用一个 Action。

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

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

但现在问题来了。如果我在按钮上打开一个 Popover(效果非常好)并且 Popover 处于打开状态,我将无法与 Popover 交互。我仍然可以与菜单和按钮进行交互,一切都很酷。但是只要我点击 Popover,一切都会隐藏起来。 (它不会崩溃或其他什么,它只是关闭弹出窗口、菜单等)

我这样打开 Popover。在初始化中:

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 中的任何地方,一切都会隐藏,无论在哪里,如果有按钮或文本字段,都没有区别......

我该如何解决这个问题?

最佳答案

尝试

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

关于macos - Swift - NSMenuItem Popover 没有获得焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31726405/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com