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
方法时查看堆栈跟踪。您会在该堆栈跟踪中看到此问题的原因,并从那里尝试消除此原因。
我怀疑你的弹出窗口正在被释放,因为它没有被你强烈持有。
我有一个带有我的视图的 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
方法时查看堆栈跟踪。您会在该堆栈跟踪中看到此问题的原因,并从那里尝试消除此原因。
我怀疑你的弹出窗口正在被释放,因为它没有被你强烈持有。