将NSMutableArray传递给NSWindowController

时间:2011-08-18 19:19:18

标签: objective-c cocoa nsmutablearray nswindowcontroller

所以我正在创建一个像这样的NSWindowController:

if ( summaryWindow ) {
    [summaryWindow release];
} // end if
summaryWindow   = [[SummaryWindowController alloc] init];

然后我将这个对象传递给我将用于NSTableView

的数组
[ summaryWindow setGlobalStatusArray:globalStatusArray];

一旦创建了该对象,我意识到我不知道如何做一些基本的东西,即链接新创建的对象动作和出口。如果我在xib中创建一个对象,并链接方法,我可以运行一个动作,但是我没有访问数组,因为xib创建了一个单独的NSWindowController实例,那么如何以编程方式创建NSWindowController但是也将数组传递给它。

2 个答案:

答案 0 :(得分:1)

您只需要正确初始化windowcontroller。 [[SummaryWindowController alloc] init];只是创建一个不知道窗口的空窗口控制器。 您可以使用其xib文件加载它。这样做:

summaryWindow   = [[SummaryWindowController alloc] initWithWindowNibName:@"YourWindowNIB"];

答案 1 :(得分:0)

所以我最后通过NSNotifications做了这个,并通过userInfo传递信息。

// Register for notifications on Global Status Array updates
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(reloadTableBuffer:) 
                                                 name:StatusUpdateNotification
                                               object:nil];

像这样:

- (void) reloadTableBuffer:(NSNotification *) notification
{
    if(debugEnabled)NSLog(@"DEBUG: Was Told to Reload Table Buffer...");
    NSDictionary *globalStatusUpdate = [notification userInfo];