2014-03-05 1 views
2

이미지와 배지 (인라인 단추)가있는 뷰 기반 NSOutlineView을 만들었습니다.NSOutlineView 이상한 패딩이 배지 자르기입니다.

enter image description here

그래서 내 배지를합니다 (NSOutlineView는 이것을 SplitView에있는 ScrollView에 포함된다) 오버레이 오른쪽에서 이상한 마진이 : 사용자 정의 셀은 충분히 넓은이지만, 나는 다음과 같은 문제가 .

어떤 아이디어라도이 여백/오버레이를 어떻게 제거 할 수 있습니까?

+0

... – Volker

+1

나는 또한 그것에 대해 생각했다. 난, 수직 스크롤바를 비활성화 도움이되지 않았다 – Lupurus

+0

아무도 아무 생각이 없니? 또한 윤곽선 뷰 내부의 다른 모든 뷰 (예 : 텍스트 필드)가 잘립니다. 또한 Mac OS Finder 또는 Mail 등에서이 효과를 볼 수 있습니다. 스크롤바를 사용하여 실제로 sth를 수행해야합니다. outlineview 내부의 셀은 outlineview 자체보다 약간 작은 크기로 자동 조정됩니다. 수동으로 IB에서 셀의 너비를 늘리면 텍스트가 잘리지 않지만 내 배지가 더 이상 자동 크기 조정에 응답하지 않습니다 (그래도 여전히 자동 레이아웃이 아니라 사용합니다).) – Lupurus

답변

0

좋아, 내 마지막 코멘트는 나에게 대답을 가져왔다;) 필자가 볼 수있는 한 숨겨진 것이 든 그렇지 않든 상관없이 스크롤바에는 실제로 문제가있다. 나는 스크롤바가 영구히 표시된 오래된 OS X 버전의 유령이라고 생각한다. outlineview의 크기를 조정하면 (scrollview에 내장되어 있고 splitview에 내장되어 있음) 셀의 너비가 자동으로 outlineview 자체의 너비보다 조금 작아집니다 (NSScrollView 코드는 생각하기 때문에 조정해야합니다. 스크롤바 때문에).

그러므로 나는 NSTableCellView를 서브 클래스 (나는 viewbased outlineview을 사용하고 있습니다)이 추가 :

- (void)setFrameSize:(NSSize)newSize { 
    //resize the textframe, so that it will not be cropped too early with "..." 
    NSRect textFrame = self.textField.frame; 
    textFrame.size.width = newSize.width; 
    self.textField.frame = textFrame; 

    //increase the size of the whole cell 
    newSize.width = newSize.width + 10.0; 

    [super setFrameSize:newSize]; 
} 

또한 때문에 textframe의 폭을 증가해야 - 당신이 등 Finder 나 메일에서 볼 수 있듯이 - 셀의 텍스트가 매우 일찍 자릅니다 ("..."포함). 너비를 늘리면이 문제도 해결됩니다.

나는이 설명을 거의 이해 바랍니다) 가능성 스크롤 막대

관련 문제