Question

Je pourrais être poser la question très simple, mais je ne suis pas en mesure d'obtenir la façon de se débarrasser de cela, l'exigence est,

  1. Le tableau doit afficher l'image et du texte à côté de cela. Pour ce faire, j'ai ajouté deux colonnes dans la table
  2. NSTableView doit être transparent. Pour ce faire, je l'ai fait une classe CustomNSTableView, méthode drawRect de dérogation à l'intérieur pour ne pas tirer fond, et dire cellule ne pas drawBackground.
  3. Maintenant, le prochain obstacle est comment afficher une image, je devais remplacer / suivant la méthode traitée

.

- (NSCell *)tableView:(NSTableView *)tableView dataCellForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{

    NSImage *pCellImage = // Get a valid Image ;

    if(tableColumn == nil ) return nil;

    NSString *colName = [tableColumn identifier];
    if([colName isEqualToString:@"firstColumn"]){
        NSCell *pCell = [[NSCell alloc]initImageCell:pCellImage];
        return pCell;
    }else{
        NSCell *pCell = [[NSCell alloc]initTextCell:@"Some text"];
        return pCell;

    }
}

i ajouté TableColumn état de zéro, comme dans la documentation sa donnée, la première fois pour chaque ligne, ce sera appelée avec nul TableColumn quand je dois définir une colonne unique pour toute la ligne, mais si je retourne son plantage avec le commentaire BAD_ACCESS,

Maintenant, ma question est de savoir comment gérer l'état nul, De plus dans cette fonction après avoir réglé NSCell pour les deux colonnes, il va à une autre fonction de délégué

- (id) tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex

Je crois, après avoir réglé correctement dataSet je ne pas besoin d'utiliser cette fonction,

Avec la mise en œuvre après sa fracassante, mais je ne suis pas en mesure de le comprendre, ce qui est faux,

i suis en train dataSource approprié et délégué,

Était-ce utile?

La solution

Avez-vous essayé d'appeler setBackgroundColor et passer la couleur claire?

[myTableView setBackgroundColor:[[NSColor clearColor]];

Si vous utilisez cette méthode, souvenez-vous de dire la NSScrollView autour de ne pas dessiner de fond.

Vous pouvez également envisager de fournir l'arrière-plan de la table comme CALayer .

En ce qui concerne l'élaboration de l'image et du texte dans une seule colonne, les relations avec les développeurs d'Apple ont publié un NSCell de coutume, ImageAndTextCell . Vous pouvez utiliser cette cellule avec les instances NSTableView et NSOutlineView. Cet article traite de la cellule personnalisée avec le dessin d'une image et du texte dans une seule colonne.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top