NSBezierPath
ist genau das, was Sie verwenden sollten. Wenn Sie nur eine gerade Linie von einem Punkt zu einem anderen zeichnen möchten, verwenden Sie die Klassenmethode:
+strokeLineFromPoint:(NSPoint)point1 toPoint:(NSPoint)point2
Cocoa verwendet einen impliziten Zeichnungsstapel und ein Ungültigkeitsmodell. Wenn in Ihrem NSView der Zustand geändert wird, der dazu führen würde, dass die Ansicht anders gezeichnet wird, rufen Sie - [self setNeedsDisplay:] auf, um dem Zeichensystem mitzuteilen, dass Sie neu gezeichnet werden müssen. Zu einem Zeitpunkt in sehr naher Zukunft, eigentlich das Ende der aktuellen Ereignisschleife, wird die drawRect: -Methode Ihrer Ansicht aufgerufen. Das ist deine Gelegenheit, alles zu zeichnen, was du möchtest.
Es gibt einen impliziten Fokus-Stack, was bedeutet, dass beim Aufruf des DrawRect: Ihrer Ansicht das Zeichnen auf die Grenzen Ihrer Ansicht in dem Fenster, in dem es sich befindet, fokussiert und abgeschnitten wird. Sie können dann Funktionen wie [[NSColor redColor] setzen ]; und NSRectFill ([selbst gebunden]);
Hier ist ein Beispiel:
%Vor%Die Ansicht sollte eine diagonale Linie zeichnen, und bei jedem Klicken sollte die Linie die Farbe ändern.
Ich habe das Beispiel von Jon ausprobiert und festgestellt, dass ich dem obigen Codebeispiel zwei kleine Korrekturen hinzufügen musste.
Sobald ich das behoben habe, fand ich den Code snippit sehr nützlich. HINWEIS: Sie müssen wahrscheinlich auch den NSColor freigeben.
%Vor%Nur um einige Informationen hinzuzufügen, mache ich es mir zur Gewohnheit, sicherzustellen, dass der Grafikzustand vor und nach dem Zeichnen gespeichert und wiederhergestellt wird, um die Dinge flüssig zu halten.
%Vor%