Je cherche à avoir une NSTable de trois colonnes. La première et la
dernière doivent contenir des images, je les aient donc déclarées comme
des NSImageCell dans IB, en glissant dessus l'icône qui correspond de la
palette Cocoa-Data.
Dans mon code, j'ai deux méthodes, qui ont le même nom que l'identifier
de chacune de ces colonnes (xRouge et fleche) qui retourne l'image en
question.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ftestuz
Jacques Foucry wrote:
Salut,
Je cherche à avoir une NSTable de trois colonnes. La première et la dernière doivent contenir des images, je les aient donc déclarées comme des NSImageCell dans IB, en glissant dessus l'icône qui correspond de la palette Cocoa-Data.
Dans mon code, j'ai deux méthodes, qui ont le même nom que l'identifier de chacune de ces colonnes (xRouge et fleche) qui retourne l'image en question.
Lorsque je compile, je n'ai même pas le plus petit warning. Lorsque j'exécute, pas de plantage. Simplement les images ne sont pas affichées.
J'ai basé mon code sur celui qui se trouve au chapitre 9 de Learning Cocoa paru chez O'Reilly il y a bien longtemps.
J'ai merdé quelque part, mais je ne vois pas où.
Merci d'avance à celui qui sait ou qui voit.
Il y a peu de code donné et à voir tu ne travailles pas avec les bindings, mais vérifie :
1) tu as défini le lien dataSource de la tableView dans IB 2) l'outlet pointé par le lien dataSource doit avoir (au moins) les méthodes : - (int)numberOfRowsInTableView:(NSTableView *)aTableView - (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex
Et aussi ta méthode xRouge retourne toujours la même image et en créé une nouvelle à chaque fois. Pas très efficace, d'autant plus que ces méthodes doivent être très rapide puisqu'elles sont souvent appelées.
Et en plus je crains que fait de cette manière il y ait une fuite de mémoire.
-- Frédéric Testuz <mailto:
Jacques Foucry <nospam@foucry.net.invalid> wrote:
Salut,
Je cherche à avoir une NSTable de trois colonnes. La première et la
dernière doivent contenir des images, je les aient donc déclarées comme
des NSImageCell dans IB, en glissant dessus l'icône qui correspond de la
palette Cocoa-Data.
Dans mon code, j'ai deux méthodes, qui ont le même nom que l'identifier
de chacune de ces colonnes (xRouge et fleche) qui retourne l'image en
question.
Lorsque je compile, je n'ai même pas le plus petit warning. Lorsque
j'exécute, pas de plantage. Simplement les images ne sont pas affichées.
J'ai basé mon code sur celui qui se trouve au chapitre 9 de Learning
Cocoa paru chez O'Reilly il y a bien longtemps.
J'ai merdé quelque part, mais je ne vois pas où.
Merci d'avance à celui qui sait ou qui voit.
Il y a peu de code donné et à voir tu ne travailles pas avec les
bindings, mais vérifie :
1) tu as défini le lien dataSource de la tableView dans IB
2) l'outlet pointé par le lien dataSource doit avoir (au moins) les
méthodes :
- (int)numberOfRowsInTableView:(NSTableView *)aTableView
- (id)tableView:(NSTableView *)aTableView
objectValueForTableColumn:(NSTableColumn *)aTableColumn
row:(int)rowIndex
Et aussi ta méthode xRouge retourne toujours la même image et en créé
une nouvelle à chaque fois. Pas très efficace, d'autant plus que ces
méthodes doivent être très rapide puisqu'elles sont souvent appelées.
Et en plus je crains que fait de cette manière il y ait une fuite de
mémoire.
Je cherche à avoir une NSTable de trois colonnes. La première et la dernière doivent contenir des images, je les aient donc déclarées comme des NSImageCell dans IB, en glissant dessus l'icône qui correspond de la palette Cocoa-Data.
Dans mon code, j'ai deux méthodes, qui ont le même nom que l'identifier de chacune de ces colonnes (xRouge et fleche) qui retourne l'image en question.
Lorsque je compile, je n'ai même pas le plus petit warning. Lorsque j'exécute, pas de plantage. Simplement les images ne sont pas affichées.
J'ai basé mon code sur celui qui se trouve au chapitre 9 de Learning Cocoa paru chez O'Reilly il y a bien longtemps.
J'ai merdé quelque part, mais je ne vois pas où.
Merci d'avance à celui qui sait ou qui voit.
Il y a peu de code donné et à voir tu ne travailles pas avec les bindings, mais vérifie :
1) tu as défini le lien dataSource de la tableView dans IB 2) l'outlet pointé par le lien dataSource doit avoir (au moins) les méthodes : - (int)numberOfRowsInTableView:(NSTableView *)aTableView - (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex
Et aussi ta méthode xRouge retourne toujours la même image et en créé une nouvelle à chaque fois. Pas très efficace, d'autant plus que ces méthodes doivent être très rapide puisqu'elles sont souvent appelées.
Et en plus je crains que fait de cette manière il y ait une fuite de mémoire.
-- Frédéric Testuz <mailto:
nospam
Frédéric Testuz wrote:
Il y a peu de code donné et à voir tu ne travailles pas avec les bindings, mais vérifie :
Non, pas de bindings, je n'ai toujours pas compris comment marchait ce truc.
1) tu as défini le lien dataSource de la tableView dans IB 2) l'outlet pointé par le lien dataSource doit avoir (au moins) les méthodes : - (int)numberOfRowsInTableView:(NSTableView *)aTableView - (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex
Tout cela fonctionne. Si je remplace le type de mes deux colonnes par tu texte par exemple (je les remet en defaule cell) et je renvoie une chaîne au lieu de l'image, mon code fonctionne et j'ai bien mes trois colonnes remplie.
Et aussi ta méthode xRouge retourne toujours la même image et en créé une nouvelle à chaque fois. Pas très efficace, d'autant plus que ces méthodes doivent être très rapide puisqu'elles sont souvent appelées.
C'est vrai. Je dois a charger l'image plus tôt et ne renvoyer que celle-ci.
Ou bien tenter d'utiliser ces @#$%^&* de bindings.
Il y a peu de code donné et à voir tu ne travailles pas avec les
bindings, mais vérifie :
Non, pas de bindings, je n'ai toujours pas compris comment marchait ce
truc.
1) tu as défini le lien dataSource de la tableView dans IB
2) l'outlet pointé par le lien dataSource doit avoir (au moins) les
méthodes :
- (int)numberOfRowsInTableView:(NSTableView *)aTableView
- (id)tableView:(NSTableView *)aTableView
objectValueForTableColumn:(NSTableColumn *)aTableColumn
row:(int)rowIndex
Tout cela fonctionne. Si je remplace le type de mes deux colonnes par tu
texte par exemple (je les remet en defaule cell) et je renvoie une
chaîne au lieu de l'image, mon code fonctionne et j'ai bien mes trois
colonnes remplie.
Et aussi ta méthode xRouge retourne toujours la même image et en créé
une nouvelle à chaque fois. Pas très efficace, d'autant plus que ces
méthodes doivent être très rapide puisqu'elles sont souvent appelées.
C'est vrai. Je dois a charger l'image plus tôt et ne renvoyer que
celle-ci.
Ou bien tenter d'utiliser ces @#$%^&* de bindings.
Il y a peu de code donné et à voir tu ne travailles pas avec les bindings, mais vérifie :
Non, pas de bindings, je n'ai toujours pas compris comment marchait ce truc.
1) tu as défini le lien dataSource de la tableView dans IB 2) l'outlet pointé par le lien dataSource doit avoir (au moins) les méthodes : - (int)numberOfRowsInTableView:(NSTableView *)aTableView - (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex
Tout cela fonctionne. Si je remplace le type de mes deux colonnes par tu texte par exemple (je les remet en defaule cell) et je renvoie une chaîne au lieu de l'image, mon code fonctionne et j'ai bien mes trois colonnes remplie.
Et aussi ta méthode xRouge retourne toujours la même image et en créé une nouvelle à chaque fois. Pas très efficace, d'autant plus que ces méthodes doivent être très rapide puisqu'elles sont souvent appelées.
C'est vrai. Je dois a charger l'image plus tôt et ne renvoyer que celle-ci.
Ou bien tenter d'utiliser ces @#$%^&* de bindings.
-- Jacques
luc
Jacques Foucry wrote:
Tout cela fonctionne. Si je remplace le type de mes deux colonnes par tu texte par exemple (je les remet en defaule cell) et je renvoie une chaîne au lieu de l'image, mon code fonctionne et j'ai bien mes trois colonnes remplie.
Vérifie si par hasard ton [[NSImage alloc] init....] ne retourne pas nil pour une raison ou une autre, on ne sait jamais.
-- Luc Heinrich
Jacques Foucry <nospam@foucry.net.invalid> wrote:
Tout cela fonctionne. Si je remplace le type de mes deux colonnes par tu
texte par exemple (je les remet en defaule cell) et je renvoie une
chaîne au lieu de l'image, mon code fonctionne et j'ai bien mes trois
colonnes remplie.
Vérifie si par hasard ton [[NSImage alloc] init....] ne retourne pas nil
pour une raison ou une autre, on ne sait jamais.
Tout cela fonctionne. Si je remplace le type de mes deux colonnes par tu texte par exemple (je les remet en defaule cell) et je renvoie une chaîne au lieu de l'image, mon code fonctionne et j'ai bien mes trois colonnes remplie.
Vérifie si par hasard ton [[NSImage alloc] init....] ne retourne pas nil pour une raison ou une autre, on ne sait jamais.