Hi,
kurze frage sehe ich das richtig das ich die oben genannte methode nur mit einem Array in meinem APP einzeichnen kann...
mit dem untereren code kann ich frei hand zeichen was ich moechte...
aber mit der bezierPathWithOval methode muss ich denk ich nen OBJECT frei geben wenn ich die
Maustaste loslasse , um es zu zeichnen is it Right ?
MouseUp --> [ path addobject ];
und im drawRect halt sagen zeichne es oder gibt es eine andere moeglichkeit...?
Alles anzeigen
kurze frage sehe ich das richtig das ich die oben genannte methode nur mit einem Array in meinem APP einzeichnen kann...
mit dem untereren code kann ich frei hand zeichen was ich moechte...
aber mit der bezierPathWithOval methode muss ich denk ich nen OBJECT frei geben wenn ich die
Maustaste loslasse , um es zu zeichnen is it Right ?
MouseUp --> [ path addobject ];
und im drawRect halt sagen zeichne es oder gibt es eine andere moeglichkeit...?
Quellcode
- //
- // StretchView.m
- // Challenge@262_1
- //
- // Created by Nico Feldmann on 10/10/08.
- // Copyright 2008 Hogeschool Drenthe. All rights reserved.
- //
- #import "StretchView.h"
- @implementation StretchView
- - (id)initWithFrame:(NSRect)rect {
- if (![super initWithFrame:rect])
- return nil;
- path = [[NSBezierPath alloc]init];
- [path setLineWidth:3.0];
- return self;
- }
- - (void) dealloc
- {
- [path release];
- [super dealloc];
- }
- - (void)drawRect:(NSRect)rect {
- [[NSColor yellowColor] set];
- if(path) {
- [path stroke];
- }
- }
- #pragma mark Events
- - (void)mouseDown:(NSEvent *)event
- {
- NSPoint p = [event locationInWindow];
- downPoint = [self convertPoint:p fromView:nil];
- currentPoint = downPoint;
- [path moveToPoint:currentPoint];
- }
- - (void)mouseDragged:(NSEvent *)event
- {
- NSPoint p = [event locationInWindow];
- currentPoint = [self convertPoint:p fromView:nil];
- //path = [NSBezierPath bezierPathWithOvalInRect:[self currentRect]];
- [path lineToPoint:currentPoint];
- [self setNeedsDisplay:YES];
- }
- - (void)mouseUp:(NSEvent *)event
- {
- NSPoint p = [event locationInWindow];
- currentPoint = [self convertPoint:p fromView:nil];
- [self setNeedsDisplay:YES];
- }
- - (NSRect)currentRect
- {
- float minX = MIN(downPoint.x, currentPoint.x);
- float maxX = MAX(downPoint.x, currentPoint.x);
- float minY = MIN(downPoint.y, currentPoint.y);
- float maxY = MAX(downPoint.y, currentPoint.y);
- return NSMakeRect(minX, minY, maxX-minX, maxY-minY);
- }
- @end