ObjectiveCeeds › Cocoa: Zeichnen mit NSBezierPath

Cocoa: Zeichnen mit NSBezierPath

Von Manfred Kreß

Seite 1 von 4



Zum Zeichnen von Linien und Formen stellt Cocoa ein relativ einfaches Werkzeug zur Verfügung. Die Klasse NSBezierPath. Dieser Artikel gibt eine Einführung in die hohe Kunst des "Malens mit Zahlen".

ObjectiveCeeds: Bezier Screenshot NSView besitzt die Methode drawRect: . In dieser Methode wird eine View gezeichnet. Text oder Bildmaterial wird zur Anzeige gebracht, oder Grafiken mit NSBezierPath gezeichnet. Fangen Sie am besten gleich an Erstellen Sie ein neues Xcode Projekt, am besten eine einfache Applikation. Legen Sie eine neue Klasse an. Die neue Klasse erbt von NSView, wofur es in Xcode schon eine Vorlage gibt. Ich nenne die Customview einfach OCView. Die Methode drawRect: sollte in der Dateivorlage schon angelegt sein. Zunächst wird hier nur kurz geloggt:
- (void)drawRect:(NSRect)dirtyRect {
    
	NSLog (@"Bitte zeichnen!");
	
}
Weiter gehts im InterfaceBuilder, Sie brauchen eine Instanz der Klasse. Ziehen Sie eine NSView in das Hauptfenster der Applikation und passen Sie die Größe an. Im Inspector müssen Sie jetzt die Klasse von NSView in OCView ändern, bzw. den Namen, den Sie vergeben haben. Alles speichern und beherzt den "Build & Go" Button in Xcode drücken. Die Applikation sollte mit einem scheinbar leeren Fenster starten. Auf der Konsole sollte Ihre Ausgabe erscheinen. drawRect: wird aufgerufen, zeichnet aber nichts, sondern logt nur. Solange Sie hier nichts zeichnen, bleibt die View völlig transparent. Zeichenstift gezückt! Beziehungsweise den NSBezierPath:
- (void)drawRect:(NSRect)dirtyRect {
    
	NSBezierPath *line = [NSBezierPath bezierPath];
	
	[line moveToPoint: NSMakePoint(50, 50)];
	[line lineToPoint: NSMakePoint(100, 50)];
	
	[[NSColor redColor] set];
	[line stroke];
	
}
Die View Zeichnet eine rote Linie im Viertel unten, links. Sie initialisieren sich eine Instanz von NSBezierPath über die Factorymethode bezierPath. Mit moveToPoint: wird der Pfad auf einen Startpunkt gesetzt und dann mit lineToPoint: eine Linie gezogen. Mit der set Methode von NSColor wird die aktuelle Zeichenfarbe gesetzt und schließlich mit stroke gezeichnet.

nächste Seite »
Seite: 1 von 4


Cocoa: Zeichnen mit NSBezierPath

Etwas Geometrie
Einfache Formen zeichnen
Und jetzt die Kurve nehmen