2010-01-07 3 views
3

NSScroller의 하위 클래스와 비슷한 iTunes를 만들었지 만, NSScrollView 또는 NSTableView에서 가로 및 세로 스크롤러가 모두 표시되는 경우 오른쪽 아래에 못생긴 흰색 사각형이 나타납니다. 누구든지 내 맞춤형 그림을 추가하여 어디에서 더 예쁜 것으로 채울 수 있는지 실마리가 있습니까?NSScroller를 서브 클래 싱하는 방법, 오른쪽 하단 모서리에있는 흰색 사각형을 제거하는 방법?

답변

3

좋아, 해결책이 있다고 생각합니다.

  • 스크롤 뷰에 배경을 그리지 말라고 말하면, 그 아래에있는 모든 것이 구석을 채울 것입니다.

    - (void)drawRect:(NSRect)rect{ 
        [super drawRect: rect]; 
    
        if([self hasVerticalScroller] && [self hasHorizontalScroller]){ 
        NSRect vframe = [[self verticalScroller]frame]; 
        NSRect hframe = [[self horizontalScroller]frame]; 
        NSRect corner; 
        corner.origin.x = NSMaxX(hframe); 
        corner.origin.y = NSMinY(hframe); 
        corner.size.width = NSWidth(vframe); 
        corner.size.height = NSHeight(hframe); 
        // your custom drawing in the corner rect here 
        } 
    } 
    
+2

약간 깔끔한 해결책은 여기에 서브 뷰에 대한 지원을 추가 할 수 있습니다 아닌 cornerView 달리 : 나는, 다음과 함께있는 ScrollView의의 drawRect 메소드를 오버라이드 (override) 한 일이다

  • 또는, tile 메소드를 오버라이드 (override) 해, 그 뷰를 적절한 위치에서 표시 및 비 표시로합니다. 그런 식으로 다양한 깔끔한 사용자 정의보기를 만들 수 있으며 상자, 스텁 필러, 단추 등을 늘릴 수 있습니다. – uliwitness

  • +0

    첫 번째 해결 방법은 작동하지 않는 것 같습니다. 스크롤 뷰에 배경을 그리지 말라고 말하면 창 배경이 어둡더라도 구석이 흰색으로 채워집니다. – JWWalker