Storyboard doesn't contain a controller with i

2020-03-16 04:18发布

问题:

I am trying to instantiate an NSWindowController from a storyboard in my OS X app:

NSWindowController *mainWindowController = [[NSStoryboard storyboardWithName:@"Main" bundle:nil] instantiateControllerWithIdentifier:@"MainWindow"];

But this is what I'm getting:

Storyboard (<NSStoryboard: 0x618000008500>) doesn't contain a controller with identifier 'MainWindow'.

But in the storyboard:

It is set. No, there are no other storyboards. Yes, I've tried cleaning the project and the build folder, but nothing changes.

Why would I get this error?

UPDATE: I am building my app, coming back to the storyboard, and I see that Storyboard ID is unset:

How can Storyboard ID get unset by itself?

回答1:

It was definitely a bug with Xcode. Restarting Xcode solved the problem.



回答2:

Confirmed in 11.3. This is such a time-waster, together with this one:

How do I open another window in macOS in Swift with Cocoa