我正试图在一个故事板中打开一个NSWindow。我正确地实例化了控制器,窗口打开了,但立即消失了。
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)
}如果vars在漏斗里,我会理解这种行为。在这种情况下ARC会毁掉窗户。
在我的样本中,vars在漏斗之外,这将使vars不被ARC杀死。
我的方式怎么了?谢谢!
发布于 2016-06-21 20:02:33
实际上,在你的样本中,你有两组不同的变量。let sb = ...和let vc = ...创建局部变量(同名),并在函数中使用时覆盖外部变量。您希望删除let限定符,以便它将值赋给函数外部的变量。
如果您移除两个let限定符,展开现在的选项,并强制下拉式,那么您的窗口将保持不动。
注意:如果您不再需要您的故事板,您可以实际删除var sb...并保留let sb...,以便减少一件要打开的东西。
https://stackoverflow.com/questions/37953123
复制相似问题