我有一个简单的 Cocoa 应用程序。它有两个窗口,每个窗口都在一个单独的 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...]
最佳答案
您需要加载它...
默认情况下,MainWindow.xib 由框架加载,该框架创建自己的应用程序委托(delegate)实例。
您应该从应用程序委托(delegate)加载第二个窗口(尝试[NSBundle laodNibNamed:@"SecondaryWindow"owner:self]
。执行此操作时,文件的所有者将是应用程序委托(delegate) - 更改界面生成器中的文件所有者以反射(reflect)该文件并与其建立连接)
关于objective-c - 一个应用程序代理,两个窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11631250/