I have a window which has a number of buttons which function logically like the tabs in an old style "tabs" interface, (seems like these are out of favor these days?) If button X is clicked, panel X appears; click on button Y, panel X disappears and panel Y takes its place... The panels in IB are subs of NSView, and each panel will have alot of GUI work to do, and so each will have its own subclass of NSViewController to control it. What I'd like to do is have the window controlling code refer to "NSViewController", not "MyViewControllerSubclass". The calling code's line that I'm stumped on is this: Code: MyViewConSubclass* conner = [[MyViewConSubclass alloc] initWithNibName:@"nibName" bundle:0]; That works fine, except that I have to name each panel class. I would like it to be: Code: NSViewController* conner = [[NSViewController alloc] initWithNibName:@"nibName" bundle:0]; ...except that it doesn't work like that. The subclass won't be created, and in fact I haven't even allocated for MyViewConSubclass... Is there a way for the calling code to refer to NSViewController only, but have my subclass be instantiated from the nib? Thanks.