NSPopover 自动关闭

NSPopover closes automatically

我有一个带有我的视图的 xib 和一个具有瞬态行为的 NSPopover:

在视图控制器中,我有一个像这样控制弹出窗口的操作:

    @IBAction func moreClicked(sender: NSButton) {      
    if !moreOpen  {
        moreOpen = true
        scriptsPopover.showRelativeToRect(sender.bounds, ofView: sender, preferredEdge: 2)
    } else {
        moreOpen = false
        scriptsPopover.close()
    }
}

当我单击我的按钮时,弹出窗口会按预期出现。但 5 秒后它消失了。

我希望弹出窗口显示多个按钮,并且仅在用户单击其中一个按钮或单击 UI 中的其他位置时才消失。比如Interface Builder中的Autolayout Pin按钮举个例子。

我尝试将行为定义为瞬态、半瞬态、应用程序定义。所有结果都完全相同:它会在几秒钟后自行消失。

我尝试实现 popoverShouldClose 委托并 returning false 让我控制它。它确实阻止了关闭,但是当用户单击按钮关闭时,它只是在旧的顶部打开一个 new 弹出窗口。在我从 popoverShouldClose 中 return false 之后,popover 也失去了它的箭头,这看起来很奇怪。

这是烦人的自动关闭的录音

在调用 popoverShouldClose 方法时查看堆栈跟踪。您会在该堆栈跟踪中看到此问题的原因,并从那里尝试消除此原因。

我怀疑你的弹出窗口正在被释放,因为它没有被你强烈持有。