/ / Comment puis-je ajouter une image statique NSFolder à une table de liaison de cacao - objective-c, macos, cacao, liaison de cacao, nsimage

Comment ajouter une image statique NSFolder à une table de liaison de cacao - objective-c, macos, cacao, liaison de cacao, nsimage

J'ai une table qui obtient les valeurs de basedonnées et est ajouté via des liaisons de cacao. Les valeurs imprimées dans la table sont des noms de dossier. J'aimerais qu'un dossier NSF soit imprimé à gauche de chaque nom de dossier. J'ai commencé avec une simple table à une colonne pour vérifier le bon fonctionnement de mes liaisons de cacao:

entrer la description de l'image ici

Après cela, j’ai essayé d’ajouter une deuxième colonne, puis j’ai ajouté une cellule image à cette nouvelle colonne, réarrangé les colonnes et défini l’image de la cellule image sur NSFolder:

entrer la description de l'image ici

Lorsque je change l’image de la cellule d’image en NSFolder,rien ne s'est passé, pas même dans le constructeur d'interface. L'icône est restée une icône Xcode. Et lorsque j'ai exécuté la commande de construction, il ne restait qu'un espace vide à gauche du nom du dossier.

A partir de là, j’ai essayé de revenir à une colonne et d’ajouter une image et une vue Cellule de tableau de texte, mais je ne pouvais même pas obtenir que les liaisons de cacao fonctionnent avec cela.

Alors, comment puis-je simplement imprimer un dossier NSFolder statique sur le côté gauche de chacun des noms du dossier?

Edit: C’est ce que j’essaie d’atteindre:

entrer la description de l'image ici

Modifier # 2

J'ai essayé d'implémenter le NSTableViewDelegate et d'ajouter la méthode suivante:

- (NSView *)tableView:(NSTableView *)tableView
viewForTableColumn:(NSTableColumn *)tableColumn
row:(NSInteger)row
{
NSTableCellView *cellView = [tableView makeViewWithIdentifier:tableColumn.identifier owner:self];
if ([tableColumn.identifier isEqualToString:@"FolderImageColumn"]) {
cellView.imageView.image = [[NSWorkspace sharedWorkspace] iconForFileType:NSFileTypeForHFSTypeCode(kGenericFolderIcon)];
return cellView;
}
return cellView;
}

Mais maintenant, je reçois des lignes complètement vides. Elles sont cliquables et elles chargent les données du côté droit, mais elles sont complètement vides.

entrer la description de l'image ici

Réponses:

1 pour la réponse № 1

Si vous implémentez les méthodes de délégation, vous pouvez interagir avec la cellule / la vue lorsqu'elle est affichée et forcer le dossier ou, en fonction du contenu / du type, toute autre image.