Cocoa / Objective-C: Zeichne ein Rechteck auf den Button Klicken
Hellow stackoverflow Menschen,
Ich bin ziemlich neu in Cocoa. Ich habe XCode 3.1
Situation:
Ich habe ein NSObject Unterklasse: (AppController) mit einer Aktion, verbunden mit einer Schaltfläche.
Als ich eine benutzerdefinierte Ansicht, verbunden mit meiner NSView subclass (AppView), in der drawRect-Befehl zeichne ich ein Rechteck (all das Zeug funktioniert),
ich habe in der AppView.m eine Funktion - (void) drawIt { .. } was zeichnet das Rechteck.
Jetzt heißt es in die - (void) drawRect ... mit [self drawIt]. Das funktioniert auch.
Was ich jetzt machen möchte, ist der Aufruf drawIt, wenn auf die Schaltfläche geklickt wird. (in der AppController.m, wenn die Aktion -(IBAction) ... wird aufgerufen durch Klicken auf eine Schaltfläche)
Ich hoffe, dass u kann mir helfen,
Ich bin neu auf stackoverflow, so weiß ich nicht, ob ich soll vorbei an all den code hier, ich kann, aber vielleicht ist es einfacher zu Lesen, wie diese
InformationsquelleAutor Samuel | 2010-01-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lesen Sie die Kakao-Zeichnen-Anleitung konzeptuellen material. Ihre Ansicht ist gefragt, um
-drawRect:
durch das system, wenn das system fühlt sich, es ist notwendig. In diesem Zusammenhang, Ihrer Meinung nach gestellt werden können, um sich selbst zeichnen zu jeder Zeit. Daher, Sie müssen denken im Sinne von "zeichnen den aktuellen Stand".Was sollte man wohl tun (in dieser einfachen situation) vielleicht geben Sie Ihre benutzerdefinierte Ansicht ein boolean-Eigenschaft "drawIt" und haben Ihre Schaltfläche Aktion schalten Sie diese Ansicht auf die Instanz. Auf diese Weise
if (self.drawIt == YES)
, rufen Sie Ihre Rechteck-zeichnen-code.Sollten Sie immer etwas tun, um "clear" zu der Ansicht, wenn
-drawRect:
genannt wird (wie füllen den gesamten Grenzen mit weiß), dann nur ziehen den bedingten Zeug, wenn die Bedingung erfüllt ist.Beispiel:
Sie gehen zu müssen, machen Sie Ihre Hausaufgaben: Lesen Sie die Dokumentation zu Objective-C 2.0-Eigenschaften. Was immer es zu aktualisieren, best-practice-Regel zu nennen [self setNeedsDisplay:YES] aus der Eigenschaft der Set-accessor-Methode auf, nachdem es verändert wurde. Dies teilt das system die view neu gezeichnet werden muss.
okay, ich werde etwas Lesen, aber ich habe die grundlegende Idee ist nun Dank^^
Sie gelöscht, dein Erster Kommentar, das macht meine Antwort seltsam erscheinen (es war die Antwort auf "wie mache ich etwas, das eine Eigenschaft"). Zur Beantwortung Ihrer zweiten Frage, sind zwei Dinge: Erstens, "BOOL", "JA" und "NEIN" convention - zweite, ich glaube BOOLs standardmäßig NICHT, aber man sollte immer sorgfältig prüfen, Initialisierung für alle Ihre iVars in Ihrer Klasse " - init... - Methoden.
Sorry für den ersten Kommentar - wollte ich mich nicht Doppel-post, den ersten, aber als ich auch sah, es wurde seltsam, so dass ich nur gepostet, wenn es neue Kommentare^^ ich muss sagen das kommt von PHP, wo alles ist ziemlich geradlinig, Objective - C ist nicht einfach für mich
InformationsquelleAutor Joshua Nozzi