2017-01-17 12 views
0

다음과 같은 분할보기가 있습니다 :NSSplitView 구분선을 숨길 수 없습니다

| 소스 | 필터 | 목록 | 세부 사항 |

내가 숨어 전에

[[[[self splitView] subviews] objectAtIndex:1] setHidden:YES]; 
[[self splitView] adjustSubviews]; 

을 사용하고있는 필터 섹션을 숨기려면

-(BOOL)splitView:(NSSplitView *)splitView shouldHideDividerAtIndex:(NSInteger)dividerIndex 

를 사용하여 내 NSSplitView 위임에 그래서 프로그래밍 방식으로 필터를 숨기려면 : 숨어 후 enter image description here 을 : enter image description here

나는 하위 클라로 구분 기호를 만들었습니다. 무슨 일이 일어나고 있는지 쉽게 알 수 있습니다. 두 분배자는 여전히 서로 옆에 있지만 오른쪽에있는 것은 완전히 사라져야합니다.

가장자리에 있지 않은 하위보기를 숨기려고하기 때문에 이런 일이 발생합니까? 아마 인덱스 0과 맥스에서만 작동합니까?

어떻게하면됩니까?

splitView.setPosition(splitView.bounds.width, ofDividerAtIndex: 0) 

을 또한보기를 축소 할 수 있도록 다른 대리자 메서드를 오버라이드 (override) :

func splitView(splitView: NSSplitView, canCollapseSubview subview: NSView) -> Bool { 
    //You may choose which view you allow to collapse here... 
    return true 
} 

func splitView(splitView: NSSplitView, shouldHideDividerAtIndex dividerIndex: Int) -> Bool { 
    return true 
} 

내가 여기 당신을위한 테스트 프로젝트를 생성

답변

0

당신은 아마 디바이더의 적절한 위치를 설정하려면 :

https://github.com/emankovski/CollapseSplitViews

+0

고맙습니다. 나는 그것을 볼 것이다. – Trygve

+0

아니요 - 영향을 미치지 않습니다. 또한 너비가 0이되기 때문에 축소 된 뷰의 객체에 문제가있어 포지셔닝 제약 조건이 엉망이 된 것 같습니다. – Trygve