나침반의 각 지점에서 내 원의 바깥 쪽 가장자리가 자르기 (아마도 직사각형 프레임으로)됩니다. 프레임 내에서 원을 표시하려면 어떻게합니까? (이것은 버튼 클릭에서 만들어지고) :코코아 NSView : 원을 만들었지 만 자른거야
을 내 AppController.m
#import "AppController.h"
#import "MakeCircle.h"
@implementation AppController
- (IBAction)makeCircle:(id)sender {
MakeCircle* newCircle = [[MakeCircle alloc] initWithFrame:NSMakeRect(100.0, 100.0, 30.0, 30.0)];
[[[[NSApplication sharedApplication] mainWindow] contentView] addSubview:newCircle];
[newCircle release];
}
@end
에서 내 MakeCircle.m
- (void)drawRect:(NSRect)rect {
[self setNeedsDisplay:YES];
[[NSColor blackColor] setStroke];
// Create our circle path
NSBezierPath* circlePath = [NSBezierPath bezierPath];
[circlePath appendBezierPathWithOvalInRect: rect];
//give the line some thickness
[circlePath setLineWidth:4];
// Outline and fill the path
[circlePath stroke];
}
감사합니다.
는'NSInsetRect' 3 명 선으로 코드를 단축 것, 그것은 도움이되기를 바랍니다. – Richard
고마워, 나는 똑같은 것을 알아 냈다. 코코아에게 스트로크를 그리기위한 방법/속성이 없다. 포토샵에서 할 수있는 것과 비슷하다. 스트로크, 센터, 바깥 쪽. - 그리고 NSApp 팁을 주셔서 감사합니다 ... – PruitIgoe
나는이 두 라인을 다음과 같이 변경했습니다 : rectangle.size.width - = STROKE_WIDTH/2; rectangle.size.height - = STROKE_WIDTH/2; to rectangle.size.width - = STROKE_WIDTH; rectangle.size.height - = STROKE_WIDTH; – PruitIgoe