2016-12-29 4 views
1

내 방 창문이 보이는 이유가 궁금 : 2 lines2 줄이이 코드 (drawRect)로 렌더링되는 이유는 무엇입니까?

내가 창 크기를 조정하는 경우, 하나의 선이 다른 하나는 정적으로 크기와 왜곡 유지하면서 스트레칭 유지합니다.

As you can see, one of the lines keeps to the edges.

이상한 부분은 drawRect가 호출 될 때마다 나는 윈도우의 높이와 폭을 기록한다는 것이다.

응용 프로그램이 시작될 때 drawRect 메서드가 4 번 호출됩니다. strange

나는이 쳐다 보면서 그것이 실제 크기 아니었다 실현하고 창 크기를 조금 이동 실제 결과를 얻었다. 이상한 점은 너무 빨리 뛰어 올랐다는 것입니다.

enter image description here

이상한 부분은 "유령"줄을 내가 어느 유령입니다 아무 생각이 , 여전히 방법입니다! 왜? 나는 표시되는 라인의 색상을 변경 ... 그리고 :

enter image description here

정적으로 표시되는 사람이 내 코드 각각의 drawRect를 사용하여 "생성"하는 것입니다.

내의 drawRect을 위해 사용하고 코드 :

- (void)drawRect:(NSRect)dirtyRect 
{ 
    NSLog(@"%f, %f", dirtyRect.size.height, dirtyRect.size.width); 
    NSBezierPath *line = [NSBezierPath bezierPath]; 
    [line moveToPoint:NSMakePoint(NSMaxX([self bounds]), NSMaxY([self bounds]))]; 
    //Sorry about formatting; SO doesn't make it easy to format. 
    [line lineToPoint:NSMakePoint(NSMinX([self bounds]), NSMinY([self bounds]))]; 
    [line setLineWidth:_lwith]; /// Make it easy to see 
    [_lineColor set]; /// Make future drawing the color of lineColor. 

    [line stroke]; 
} 

내가 설명, 또는 도움이 될 것입니다 단지 아무것도의 비트를 요구하고있다! 감사합니다

답변

1

자체는

내가 무슨 짓을 한거야 대답? : 스토리 보드의 다른 NSView 안에 NSView의 서브 클래스가 있습니다. NSView (부모/창)가 자유롭게 움직이는 동안 자식 NSView는 정적으로 일정 크기로 유지되었습니다. 명심하십시오, NSView의 자식 인스턴스를 ViewController에 저장했습니다. 내 NSView는 무엇이든지 상관없이 선을 표시하고 있었고 그 자체의 인스턴스가있는 경우에만 색을 변경했습니다.

), 그것은 단지 하나의 "그래프"보기를하는 것이 얼마나 깔끔한 enter image description here

주의 사항 :

당신이 당신의 스토리 보드는 모든 점검이 있는지 확인이 광산은 이제 다음과 같습니다

관련 문제