我创建了一个NSWindow xib文件,我想在另一个窗口中单击按钮打开它。接口生成器中的NSWindowController对象链接
现在,为了控制NSWindow的行为,我将xib中的一个对象从库中拖出来,并将其更改为我在XCode中定义的NSWindowController(即ListingWindowController)的子类。
同样我也创建了NSViewController的子类(即ListingViewController)来管理NSWindow内部的NSView。为此,我将xView中的NSViewController从库中拖出来,并将其类更改为ListingViewController。
@class ListingViewController;
@interface ListingWindowController : NSWindowController {
IBOutlet ListingViewController *listingVC;
}
@property (nonatomic, retain) IBOutlet ListingViewController *listingVC;
@end
我连接窗口和我的窗口控制器列表VC在IB。
我们调用一个按钮的点击该窗口在我推出(第一)窗口中,我创建一个使用initWithWindowNibName这样的窗口控制器..
- (IBAction) pushConnect:(id)sender {
NSLog(@"Connect pushed.");
if (wc == nil) {
wc = [[ListingWindowController alloc] initWithWindowNibName:@"ListingWindow" owner:self];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(closeWindow:) name:NSWindowWillCloseNotification object:nil];
[wc showWindow:sender];
}
}
的问题是,尽管所有的绑定完成在即将到来的窗口/视图的视图控制器的IB中,即使在新窗口已经加载(下面的代码)之后,窗口和列表VC出现为(null),(null)。
- (void)windowDidLoad {
[super windowDidLoad];
NSLog(@"windowDidLoad = %@, %@", self.window, self.listingVC);
}
请大家帮忙,为什么连接不上的工作。我现在对这个问题已经有一段时间了。 PS:我来自iOS编程背景。所以,我假设Mac的窗口/视图控制器的行为与iOS UIViewControllers类似。
TIA ..