2012-08-16 5 views
9

어떻게 NSSplitView의 시작 위치를 설정할 수 있습니까?NSSplitView 분배기의 시작 위치

작동 것 같다 내가 찾은 가장 가까운 것은 내 splitview은 여전히 ​​중앙의 칸막이로 시작, setPosition를

//Set splitView position. 
[splitView setPosition:330 ofDividerAtIndex:0]; 

이 비록 아무것도하지 않는 것입니다.

아이디어가 있으십니까?

답변

1

어쩌면 센터입니까? splitView가 분할보기에 올바르게 연결되면 해당 코드가 작동합니다. 가능한 값을 알 수 있도록 디바이더의 위치를 ​​설정하기 전에 [splitView minPossiblePositionOfDividerAtIndex : 0] 및 [splitView maxPossiblePositionOfDividerAtIndex : 0]을 기록해야합니다.

+0

그래, 그건 중심이 아니야. 내 최소값은 0이고 최대 값은 999입니다. – arooo

+0

나는 무엇을 말 할 지 모르겠다. 제약 조건 설정과 관련이 있는지 궁금합니다. 방금 분리보기를 드래그하여 각면에 몇 개의 버튼과 텍스트 필드를 추가 (그래서 볼 수있는 부분이 있음) 한 줄의 코드를 추가했습니다. – rdelmar

+0

다른 곳에 문제가있는 것처럼 보입니다. 사용자가 기본보기를 선택할 수있는 설정이 있습니다. splitView를 기본보기로 설정 한 다음 분할이 중앙에있는 경우보기를 설정합니다. 기본보기로 다른보기를 설정하고 splitView로보기를 클릭하면 모든 것이 잘 동작합니다. 무슨 일이 일어날 지 모르는 어떤 생각? – arooo

2

NSSplitView은 레이아웃을 올바르게 만들려면 초기 크기가 아닌 경계가 필요합니다. 보기의 크기가 0 인 경우 예상 레이아웃이 표시되지 않습니다.

가장 좋은 방법은 0이 아닌 레이아웃을 제공하는 것입니다 (이것이 IB가하는 일입니다).하지만 때때로 불가능합니다.

0이 아닌 크기를 제공 할 수 없다면 직접 모든 수동 레이아웃을 수행하기 위해 적절한 - (void)splitView:(NSSplitView *)splitView resizeSubviewsWithOldSize:(NSSize)oldSize 대리자 메소드 구현을 제공해야한다고 생각합니다. (현재 가장 좋은 방법입니다)

4

디바이더의 위치를 ​​설정하지 않으면 NSSplitView의 하위보기의 크기를 설정합니다. 그런 다음 구분선이 자동으로 위치가 변경됩니다. 뷰의 클래스 하우징에서 분할보기

override func viewWillAppear() { 
    self.mySplitView.setPosition(120, ofDividerAtIndex: 0) 
} 

let subview: NSView = mySplitView.subviews[1] as NSView 
subview.setFrameSize(NSMakeSize(subview.frame.size.width, 100)) 
0

또는 당신이 원하는 목적지가 시작 :

이것은 내 분배기 및 (SWIFT)에 서브 뷰의 크기를 배치하는 방법입니다.