그래서 내 경로를 그려야하는 데이터로 알림을받습니다. 이 코드는 내 메인 컨트롤러에서 가져온 것입니다 :내 NSBezierPath가 표시되지 않는 이유는 무엇입니까?
-(void) handleAdd:(NSNotification *)aNotification{
NSLog(@"x1:%f y1:%f x2:%f y2:%f ",[panelController x1],[panelController y1],[panelController x2],[panelController y2]);
myPath = [[NSBezierPath alloc]init];
[myPath setLineWidth:[panelController grosor]];
[myPath moveToPoint:NSMakePoint([panelController x1],[panelController y1])];
[myPath lineToPoint:NSMakePoint([panelController x2],[panelController y2])];
[[panelController trazado] setStroke];
[myPath stroke];
}
NSLog가 올바른 데이터를 보여줍니다. 나는보기를 만들었고 그 하얀 사각형 안에 내가 그리고 싶은 곳이있다.
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code here.
}
return self;
}
- (void)drawRect:(NSRect)dirtyRect
{
NSRect bounds= [self bounds];
[[NSColor whiteColor] set];
[NSBezierPath fillRect:bounds];
}
내가 그 클래스를 그려 보면 스트로크가 표시되지만 어떻게 컨트롤러에서 그 뷰를 그릴 수 있습니까? 아니면 그냥보기에서 알림을 받아 해당 클래스에서 가져와야합니까?
모든 도면은'-drawRect :'안에 있어야합니다. 따라서'-handleAdd :'는 데이터를 저장하고보기에 플래그를 표시한다 :'[myView setNeedsDisplay : YES];'. 마지막으로 베 지어 패스의 색상을 설정해야합니다. –