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;
}
看来您拼错了这个资料来源(而非委派)方法。更改此:
- (id)cmdTableView:(NSTableView *)tv 
objectValueForTableColumn :(NSTableColumn *)cmdTableView 
      row :(int)rowIndex
对此:
- (id)tableView:(NSTableView *)tv 
objectValueForTableColumn :(NSTableColumn *)column 
      row :(int)rowIndex