windowDidLoad 未调用(再次)
windowDidLoad not called (again)
这让我抓狂。我的应用程序中有几个 windows,我通过菜单打开它们。我现在添加了一个新的 window,但它的 windowDidLoad
从未被调用过。
fileprivate let paymentWindowController = PaymentWindowController(windowNibName:"PaymentWindow")
是我在 AppDelegate
中发出
的声明
paymentWindowController.loadWindow()
在其 applicationDidFinishLaunching
.
当我的菜单被点击时它调用
@IBAction func showPayments(_ sender: Any) {
paymentWindowController.window!.makeKeyAndOrderFront(self)
}
PaymentWindowController
只是通过 New File/Cocoa/NSWindowController:
创建的脚手架
class PaymentWindowController: NSWindowController {
override func windowDidLoad() {
super.windowDidLoad()
print("never been here")
}
}
XIB 只有一个 window 也来自脚手架。 (我刚刚将 XIB 从 PaymentWindowController.xib
重命名为 PaymentWindow.xib
,就像我对另一个 windows 所做的那样。)
所有其他 windows 都是以相同的方式创建的,并且按预期工作。但是这个混蛋不会像它应该的那样工作。
我还清理了项目,甚至删除了派生数据。
原来还需要加
override func awakeFromNib() {
// initialize
}
我的代码实际上被调用了。不知道为什么我被脚手架创建但从未被调用的 windowDidLoad
愚弄了。
这让我抓狂。我的应用程序中有几个 windows,我通过菜单打开它们。我现在添加了一个新的 window,但它的 windowDidLoad
从未被调用过。
fileprivate let paymentWindowController = PaymentWindowController(windowNibName:"PaymentWindow")
是我在 AppDelegate
中发出
paymentWindowController.loadWindow()
在其 applicationDidFinishLaunching
.
当我的菜单被点击时它调用
@IBAction func showPayments(_ sender: Any) {
paymentWindowController.window!.makeKeyAndOrderFront(self)
}
PaymentWindowController
只是通过 New File/Cocoa/NSWindowController:
class PaymentWindowController: NSWindowController {
override func windowDidLoad() {
super.windowDidLoad()
print("never been here")
}
}
XIB 只有一个 window 也来自脚手架。 (我刚刚将 XIB 从 PaymentWindowController.xib
重命名为 PaymentWindow.xib
,就像我对另一个 windows 所做的那样。)
所有其他 windows 都是以相同的方式创建的,并且按预期工作。但是这个混蛋不会像它应该的那样工作。
我还清理了项目,甚至删除了派生数据。
原来还需要加
override func awakeFromNib() {
// initialize
}
我的代码实际上被调用了。不知道为什么我被脚手架创建但从未被调用的 windowDidLoad
愚弄了。