如图,我在MainMenu.xib中拖入了一个Object,设定成我自己的mainMenuWindowController类,然后把界面元素的Outlet和Action绑定到里面。
程序运行的时候会加载这个nib,然后实例化里面的对象
现在我想在其他的类里面使用这个对象,我该如何从nib里获取它呢?
ringa_lee2017-04-22 09:02:17
NSViewController* viewController = [[NSViewController alloc] initWithNibName:@"SomeNibName" bundle:nil];
高洛峰2017-04-22 09:02:17
MainMenu.xib一般都有个AppDelegate的实例。先到自动生成的AppDelegate类的头文件里声明一个MainWindowController的IBOutlet,再回MainMenu.xib里,把MainWindowController的实例(蓝色立方体)和刚刚在AppDelegate里声明的IBOutlet连起来就行了。
接着,其余的代码需要访问实例化的MainWindowController,都可以通过AppDelegate的这个IBOutlet property或ivar。当然,要等到-awakeFromNib以后访问才有效。