나는 간단한 Mac 페인트 응용 프로그램을 크레이트하려고합니다. iOS에서는 touchesMoved 때 UIImageView의 이미지를 업데이트하기 위해 UIGraphicsGetImageFromCurrentImageContext를 사용했습니다. /에 어떤 조언을바탕 화면 코코아의 UIGraphicsGetImageFromCurrentImageContext와 일치합니까?
myNSImageView.image = UIGraphicsGetImageFromCurrentImageContext();
을하지만 그 기능은 코코아 프레임 워크 내에서 코코아 터치에 존재하지 않습니다 : 지금 활동 같은 일을하지만, 맥 애플 리케이션에 노력하고있어 내가하고 싶은 코코아에서 비슷한 기능을 찾을 수 있다면?
감사합니다.
업데이트
완전성에 대한 몇 가지 추가 코드.
- (void)mouseDragged:(NSEvent *)event
{
NSInteger width = canvasView.frame.size.width;
NSInteger height = canvasView.frame.size.height;
NSGraphicsContext * graphicsContext = [NSGraphicsContext currentContext];
CGContextRef contextRef = (CGContextRef) [graphicsContext graphicsPort];
CGContextRef imageContextRef = CGBitmapContextCreate(0, width, height, 8, width*4, [NSColorSpace genericRGBColorSpace].CGColorSpace, kCGImageAlphaPremultipliedFirst);
NSPoint currentPoint = [event locationInWindow];
CGContextSetRGBStrokeColor(contextRef, 49.0/255.0, 147.0/255.0, 239.0/255.0, 1.0);
CGContextSetLineWidth(contextRef, 1.0);
CGContextBeginPath(contextRef);
CGContextMoveToPoint(contextRef, lastPoint.x, lastPoint.y);
CGContextAddLineToPoint(contextRef, currentPoint.x, currentPoint.y);
CGContextDrawPath(contextRef,kCGPathStroke);
CGImageRef imageRef = CGBitmapContextCreateImage(imageContextRef);
NSImage* image = [[NSImage alloc] initWithCGImage:imageRef size:NSMakeSize(width, height)];
canvasView.image = image;
CFRelease(imageRef);
CFRelease(imageContextRef);
lastPoint = currentPoint;
}
그 결과 나는 그림 뷰의 상부에서 잘 작동하는지 지금 받고 있어요,하지만 나머지 봇.
당신은 그것이 "효과가 없다"고 말하고 있습니다 - 어쩌면 당신은 정확하게 문제를 정확히 말해야합니다. – Till
@ 문제는 분명히 밝혀졌습니다. 그가 언급하는 기능은 IOS 뿐이며 그는 맥등을 찾고 있습니다. – jrturton
@jrturton 감사의 말씀을 전합니다. – Till