Это сводит меня с ума. У меня есть несколько окон в моем приложении, которые я открываю через меню. Теперь я добавил новое окно, но это windowDidLoad
никогда не вызывается.windowDidLoad не вызывается (снова)
fileprivate let paymentWindowController = PaymentWindowController(windowNibName:"PaymentWindow")
это объявление в моем AppDelegate
где я выдать
paymentWindowController.loadWindow()
в его applicationDidFinishLaunching
.
Когда мое меню нажата он вызывает
@IBAction func showPayments(_ sender: Any) {
paymentWindowController.window!.makeKeyAndOrderFront(self)
}
PaymentWindowController
только леска, которая создается с помощью New File/Какао/NSWindowController:
class PaymentWindowController: NSWindowController {
override func windowDidLoad() {
super.windowDidLoad()
print("never been here")
}
}
XIB имеет только одно окно также с эшафота. (Я просто переименовал XIB с PaymentWindowController.xib
в PaymentWindow.xib
, как и я сделал это для других окон тоже.)
Все остальные окна были созданы так же, как и ожидалось. Но этот ублюдок не будет работать так, как должен.
Я также очистил проект и даже удалил производные данные.
Вы пробовали удалить xib, очистить проект, а затем перестроить xib? Иногда я сталкиваюсь с такими проблемами, как пользовательские xib, а иногда перестраивает, это единственное, что работает. Наверное, не ответ, на который вы надеялись, но это стоит того! Есть другие вопросы, похожие на вас, так что я уверен, что вы тоже можете отвлечься. Я мог бы получить ответы от них, но в этот момент это было бы излишним. Вы, наверное, все это видели. Удачи! – user3353890
@ user3353890 Это действительно прическа ... См. Мой собственный ответ. –
Рад, что вы это поняли! – user3353890