2010-07-20 4 views
0

J'ai essayé d'afficher imagecells dans tableview, mais le programme se bloque ..affichage cellule d'image dans tableview

voici ma classe ImageCell:

@interface ImageCell : NSTextFieldCell { 
    NSImage *imageIcon; 
    NSString *labelStr; 
} 
@property (retain) NSImage *imageIcon; 
@property (retain) NSString *labelStr; 

- (id) initWithLabel:(NSString *) labelString imageName:(NSString *) imageString; 

lorsque le programme est exécuté, il se bloque avec le message d'erreur:

-[NSTextFieldCell labelStr]: unrecognized selector sent to instance 0x10011f160 

mais je l'ai déjà fournir ma propre classe ImageCell ...

est-il chose que j'ai mal fait, merci !!!

ici est mon délégué tableview & datasource:

- (void) awakeFromNib { 

    self.list = [[NSMutableArray alloc] init]; 
    [self.list addObject:[[ImageCell alloc] initWithLabel:@"Library" imageName:@"album.tiff"]]; 

    // set first cell here 
    NSTableColumn *col = [[self.tableView tableColumns] objectAtIndex:0]; 
    [col setDataCell:[list objectAtIndex:0]]; 
} 

- (NSInteger)numberOfRowsInTableView:(NSTableView *)pTableView { 

    return [self.list count]; 
} 

- (id)tableView:(NSTableView *)pTableView objectValueForTableColumn:(NSTableColumn *)pTableColumn row:(int)pRow { 

    ImageCell *imageCell = (ImageCell *)[self.list objectAtIndex:pRow]; 
    return imageCell.labelStr; 
} 

- (void)tableView:(NSTableView *)tableView willDisplayCell:(id)cell 
              forTableColumn:(NSTableColumn *)tableColumn 
                 row:(NSInteger)pRow { 

    ImageCell *imageCell = (ImageCell *)cell; 
    imageCell.image = [[self.list objectAtIndex:pRow] imageIcon]; 
    [imageCell setTitle:imageCell.labelStr]; 
} 
+0

Y at-il un @synthesize labelStr dans votre code? – krzyspmac

+0

ya, il y en a un ... – Frost

+0

vous devriez l'utiliser pour la 2ème ligne: self.list = [NSMutableArray array]; – ssj

Répondre

1

Les documents ne précisent aucune garantie que les colonnes de table retournées par -tableColumns sont dans un ordre particulier. Essayez de demander -tableColumnWithIdentifier: (et assurez-vous que les colonnes de votre table ont des identifiants spécifiés dans la plume).

+0

qui aide! merci: D – Frost

Questions connexes