Un drôle de bug
Hello,
Désolé pour titre pas très explicite, mais ça aurait fait un titre plutôt long sinon..
Je m'explique,
Je suis entrain de faire un gestionnaire de téléchargements. Pour avoir un NSProgressIndicator dans chaque ligne de mon tableau de telechargements, j'ai choisi de lui insérer une NSView pour chaque téléchargement.
ça fait 1 an que j'utilise cette technique et là elle ne semble pas marcher sous Leopard. Cependant j'ai lancé un vieux programme à moi pour voir quand même si c'était pas plutôt mon code, et oui en effet, c'est mon code, car mon vieux programme marche très bien.
Voici les implémentation de ma tableview :
StatusCell est une sous-classe de NSCell qui était fournie dans l'exemple que j'avais choppé. Donc pas de problème pour cette sous-classe, rien n'a été modifié donc elle marche parfaitement bien.
Pour mon SubviewController, c'est en fait une sous-classe de NSObject.
Voici le fichier implémentation de mon SubviewController :
Le problème est que je n'arrive pas à avoir le rafraà®chissement de ma "subview" de "SubviewController". Lorsque j'appelle la méthode "setNameField:", mon "nameField" n'est pas modifié. En revanche, et c'est là que c'est bizarre, lorsque j'appelle la méthode "setIcon:", il me met bien l'image que je lui envoie dans la NSImageView de ma subview oO
Alors je ne comprend pas.. Apparemment OK pour l'image, mais pour tout le reste non y compris pour incrémenter un NSProgressIndicator..
Désolé pour titre pas très explicite, mais ça aurait fait un titre plutôt long sinon..
Je m'explique,
Je suis entrain de faire un gestionnaire de téléchargements. Pour avoir un NSProgressIndicator dans chaque ligne de mon tableau de telechargements, j'ai choisi de lui insérer une NSView pour chaque téléchargement.
ça fait 1 an que j'utilise cette technique et là elle ne semble pas marcher sous Leopard. Cependant j'ai lancé un vieux programme à moi pour voir quand même si c'était pas plutôt mon code, et oui en effet, c'est mon code, car mon vieux programme marche très bien.
Voici les implémentation de ma tableview :
<br />- (void)test<br />{<br /> id subviewTest = [SubviewController controller];<br /><br /> [subviewTest setNameField:@"TEST DE MERDE"];<br /> [data addObject:subviewTest];<br /> [self reloadDataTable];<br />}<br />- (void)reloadDataTable<br />{<br /> while ([[self subviews] count] > 0){<br /> [[[self subviews] lastObject] removeFromSuperviewWithoutNeedingDisplay];<br /> }<br /> [self reloadData];<br />}<br /><br /><br />- (int) numberOfRowsInTableView:(NSTableView *) tableView<br />{<br /> return [data count];<br />}<br /><br />- (id) tableView:(NSTableView *) tableView objectValueForTableColumn:(NSTableColumn *) tableColumn row:(int) row<br />{<br /> id obj = nil;<br /> <br /><br /> <br /> return obj;<br />}<br />- (void) tableView:(NSTableView *) tableView willDisplayCell:(id) cell forTableColumn:(NSTableColumn *) tableColumn row:(int) row<br />{<br /> [(StatusCell *)cell addSubview:[[data objectAtIndex:row] view]];<br /> <br />}<br />
StatusCell est une sous-classe de NSCell qui était fournie dans l'exemple que j'avais choppé. Donc pas de problème pour cette sous-classe, rien n'a été modifié donc elle marche parfaitement bien.
Pour mon SubviewController, c'est en fait une sous-classe de NSObject.
Voici le fichier implémentation de mon SubviewController :
<br />+ (id) controller<br />{<br /> return [[[self alloc] init] autorelease];<br />}<br /><br />- (id) init<br />{<br /> if ((self = [super init]) != nil)<br /> {<br /> if (![NSBundle loadNibNamed: @"Subview" owner: self])<br /> {<br /> [self release];<br /> self = nil;<br /> }<br /> }<br /> <br /> return self;<br />}<br /><br />- (void)dealloc<br />{<br /> [subview release];<br /> [super dealloc];<br />}<br /><br /><br />- (NSView*)view<br />{<br /> return subview;<br />}<br />- (void)setNameField:(NSString*)string<br />{<br /> [nameField setStringValue:string];<br />}<br />- (void)setIcon:(NSImage*)icon<br />{<br /> [icon setSize:NSMakeSize(32,32)];<br /> [iconView setImage:icon];<br />}<br />
Le problème est que je n'arrive pas à avoir le rafraà®chissement de ma "subview" de "SubviewController". Lorsque j'appelle la méthode "setNameField:", mon "nameField" n'est pas modifié. En revanche, et c'est là que c'est bizarre, lorsque j'appelle la méthode "setIcon:", il me met bien l'image que je lui envoie dans la NSImageView de ma subview oO
Alors je ne comprend pas.. Apparemment OK pour l'image, mais pour tout le reste non y compris pour incrémenter un NSProgressIndicator..
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses