2010-04-10 5 views
1

Je pense que c'est une question très simple, mais je suis nouveau à la programmation donc je vais peut-être y aller d'une manière erronée.réinitialiser l'image dans un NSView

J'ai une connaissance de base des applications de terminaux d'écriture Objective-C et apprends moi-même à utiliser l'interface graphique Cocoa.

Je comprends comment utiliser IBOutlet et IBAction pour connecter un simple bouton à une méthode qui enverra à plusieurs reprises des nombres aléatoires à un champ de texte.

Je comprends comment ajouter un fichier NSView, le connecter à une vue personnalisée dans l'interface de construction et dessiner un chemin à travers des points aléatoires dans la vue lorsque l'application se lance.

(J'ai mis ce code dans la méthode - (void)drawRect:(NSRect)dirtyRect qui est déclarée lors de la création du fichier). Ce que je n'arrive pas à comprendre, c'est comment connecter un bouton à une action qui va alors «actualiser» la vue - dans ce cas, la repeupler avec un autre ensemble de points aléatoires connectés à un chemin. En regardant la documentation, je pense que je devrais utiliser en quelque sorte

– (void) setNeedsDisplay(BOOL)flag 

mais rien de ce que j'ai essayé jusqu'ici n'avait fonctionné. S'il vous plaît dites-moi, qu'est-ce qui me manque ici?

+0

WOW! quelle mer de lettres ... imaginez la documentation d'Apple écrite de la façon dont vous écrivez: -/Pouvez-vous s'il vous plaît donner des espaces, des retraits, des styles, etc à votre écriture afin d'être mieux et simplement lus par nous tous? Ty! – balexandre

+0

désolé! J'espère que c'est plus facile à lire. – Josan

Répondre

1

Quelque chose comme ceci:

- (IBAction)refreshButtonAction:(id)sender 
{ 
    [theView setNeedsDisplay:YES]; 
} 

Connectez votre bouton pour cette action. "theView" est une référence à votre NSView personnalisé.

+0

Merci! J'avais essayé des choses semblables, mais je ne déclarais pas mon NSView personnalisé en tant que variable d'instance dans AppController. Puis j'ai essayé d'ajouter le bouton dans le NSView et d'envoyer [self setNeedsDisplay: YES]; silly newbie :) – Josan

Questions connexes