gpt4 book ai didi

cocoa - NSPopover 自动关闭

转载 作者:可可西里 更新时间:2023-11-01 01:06:03 24 4
gpt4 key购买 nike

我有一个带有我的 View 的 xib 和一个具有 transient 行为的 NSPopover:

IB nspopover setup

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

    @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 按钮举个例子。

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

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

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

NSpopover annnoyingly closes itself

最佳答案

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

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

关于cocoa - NSPopover 自动关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29881842/

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