gpt4 book ai didi

xcode - NSWindow在showWindow后自动关闭

转载 作者:行者123 更新时间:2023-11-30 10:02:01 26 4
gpt4 key购买 nike

我正在尝试在 Storyboard 中打开 NSWindow。我已正确实例化 Controller ,窗口打开但立即消失。

   var sb : NSStoryboard?
var vc : NSWindowController?
@IBAction func openWindow(sender: AnyObject) {
let sb = NSStoryboard(name: "NewStoryBoard", bundle: nil)
let vc = sb.instantiateControllerWithIdentifier("windowController")
vc.showWindow(nil)
}

如果变量位于 func 内部,我会理解这种行为。在这种情况下,ARC 将杀死该窗口。

在我的示例中,变量位于 func 之外,这应该可以防止变量被 ARC 杀死。

我的方法有什么问题吗?谢谢!

最佳答案

实际上,在您的示例中,您有两组不同的变量。您的 let sb = ...let vc = ... 创建局部变量(具有相同的名称),并且在函数中使用时将覆盖外部变量。您想要删除 let 限定符,以便它将值分配给函数外部的变量。

如果您删除两个 let 限定符,解开 now 选项,并强制向下转换,那么您的窗口将保持打开状态。

注意:如果您不再需要 Storyboard,您实际上可以删除 var sb... 并保留 let sb... 以便少一件需要打开的东西。

关于xcode - NSWindow在showWindow后自动关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37953123/

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