NSTableView数据源方法未触发

Ron*_*ann 1 cocoa delegates objective-c

我对委托方法有疑问。将数组填充到tableView中的其中之一没有触发,我不明白为什么。结果是我的tableView具有预期的行数,但它们都是空的。我设置了断点,但它并不止于此。

有什么线索可以尝试吗?

//This is working

- (id)init  {
   self = [super init];

   cmdListMain = [NSArray arrayWithObjects: @"Cat", @"Dog", @"Fish", nil];   

   NSLog (@"init");


   return self;
}

//This is working

- (int) numberOfRowsInTableView: (NSTableView *) tv
{
    NSLog(@"numberOfRowsInTableView");
return [cmdListMain count];
}

//This one is not firing** 

- (id)cmdTableView:(NSTableView *)tv 
    objectValueForTableColumn :(NSTableColumn *)cmdTableView 
          row :(int)rowIndex
{
   NSLog(@"cmdTableView");
   NSString *v = [cmdListMain objectAtIndex:rowIndex];
   return v;
}

//This is working

-(BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *) theApp  {
   return YES;
}
Run Code Online (Sandbox Code Playgroud)

bne*_*ely 5

看来您拼错了这个资料来源(而非委派)方法。更改此:

- (id)cmdTableView:(NSTableView *)tv 
objectValueForTableColumn :(NSTableColumn *)cmdTableView 
      row :(int)rowIndex
Run Code Online (Sandbox Code Playgroud)

对此:

- (id)tableView:(NSTableView *)tv 
objectValueForTableColumn :(NSTableColumn *)column 
      row :(int)rowIndex
Run Code Online (Sandbox Code Playgroud)