Pb de rafraichissement

RadadaRadada Membre
août 2009 modifié dans API AppKit #1
Salut encore à  tous :)

toujours avec ma petite app débutant du livre d'Aaron Hilleglass et pour faire suite à  ce post.

J'ai enfin réussi à  recharger les données d'un fichier de sauvegarde. Par contre, aucun rafraissement du NSView est fait malgré les appels à  setNeedsToDisplay:YES et malgré le fait que addSubView serait censé le faire.

Voila donc le code et le projet en PJ.
D'avance, encore, merci  ::) ::)

<br /><br />- (void)windowControllerDidLoadNib:(NSWindowController *) aController<br />{<br />&nbsp; &nbsp; [super windowControllerDidLoadNib:aController];<br />&nbsp; &nbsp; // Add any code here that needs to be executed once the windowController has loaded the document&#39;s window.<br />&nbsp; &nbsp; NSLog(@&quot;windowControllerDidLoadNib %@ %@&quot;,panel, loadedPanel); // la vue désarchivée par le data<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; if (loadedPanel)<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; // on récupère la supervue du panel du Nib<br />&nbsp; &nbsp; &nbsp; &nbsp; NSView* panelSuperView = [panel superview];<br />&nbsp; &nbsp; &nbsp; &nbsp; // on supprime le panel du nib de la supervue<br />&nbsp; &nbsp; &nbsp; &nbsp; [panel removeFromSuperview];<br />&nbsp; &nbsp; &nbsp; &nbsp; // le panel est maintenant celui chargé à  partir du fichier de sauvegarde<br />&nbsp; &nbsp; &nbsp; &nbsp; panel = loadedPanel;<br />&nbsp; &nbsp; &nbsp; &nbsp; // on rajoute ce panel à  la supervue<br />&nbsp; &nbsp; &nbsp; &nbsp; [panelSuperView addSubview:panel];<br />&nbsp; &nbsp; &nbsp; &nbsp; // on modifie la couleur du colorWell<br />&nbsp; &nbsp; &nbsp; &nbsp; [colorWell setColor:[panel color]];<br />&nbsp; &nbsp; &nbsp; &nbsp; // on affiche les données<br />&nbsp; &nbsp; &nbsp; &nbsp; [panel setNeedsDisplay:YES];<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; [colorWell setColor:[NSColor redColor]];<br />&nbsp; &nbsp; &nbsp; &nbsp; [panel setColor:[colorWell color]];<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; NSLog(@&quot;après windowControllerDidLoadNib %@ %@&quot;,panel, loadedPanel); // la vue désarchivée par le data<br />}<br />

Réponses

  • Philippe49Philippe49 Membre
    21:19 modifié #2
    Une fois que setNeedsDisplay:YES est posé, il va être fait un appel à  la méthode drawRect: de NSView.  C'est là  qu'il faut chercher.
  • RadadaRadada Membre
    21:19 modifié #3
    dans 1250683116:

    Une fois que setNeedsDisplay:YES est posé, il va être fait un appel à  la méthode drawRect: de NSView.  C'est là  qu'il faut chercher.

    Eh bé, tu es mon sauveur à  chaque fois dis moi  :p :p :p
    Bon, je pars en voiture pendant 2 jours, mais je jetterais un oeil dessus en début de semaine prochaine : )
    Merci encore chef  8--)
Connectez-vous ou Inscrivez-vous pour répondre.