我有一个简单的可可应用程序。它有两个窗口,每个窗口在一个单独的XIB文件:一个应用程序代表,两个窗口
- MainMenu.xib
- SecondaryWindow.xib
我有一个AppDelegate类,其具有在MainMenu.xib窗口的引用。我试图让它有一个对SecondaryWindow.xib中的窗口的引用。我很困惑如何做到这一点。我做了一个插座,因为这样的:
@interface AppDelegate : NSObject <NSApplicationDelegate>
@property (assign) IBOutlet NSWindow *window;
@property (assign) IBOutlet NSWindow *secondaryWindow;
@end
这里的实现:
@implementation AppDelegate
@synthesize window = _window;
@synthesize secondaryWindow = _secondaryWindow;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
[NSBundle loadNibNamed:@"SecondaryWindow" owner:self];
NSLog(@"_window = %@", _window);
NSLog(@"_secondaryWindow = %@", _secondaryWindow);
}
@end
_secondaryWindow总是(空)
我已经从SecondaryWindow.xib连接增加一个出口第二个窗口到AppDelegate中的插座。在SecondaryWindow.xib中,我还需要做些什么才能完成连接?
编辑:添加[一个NSBundle loadNibNamed ...]
感谢马丁。我添加了[NSBundle loadNibNamed ..],因为它是最接近我可以在文档中找到您的建议。我修改了我的问题以表明这一点。但仍然,secondaryWindow是空的...我在loadNibNamed中使用了错误的所有者?或者,也许applicationDidFinishLaunching不是正确的方法? – 2012-07-24 13:10:24
刚刚编辑我的答案:) – 2012-07-24 13:26:23
嗨马丁,我仍然无法找到[[NSBundle mainBundle] loadNibNamed ...]可能是iOS和不是OS X? – 2012-07-24 13:49:11