2017-01-17 11 views
0

私は次のような分割ビューを持っています:NSSplitView dividerを非表示にできません

|ソース|フィルター|リスト|詳細|

私は私が隠れて前に

[[[[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と最大のためだけに機能しますか?

どうすればこの作品を作成できますか?

答えて

0

あなたはおそらくちょうど除算器の適切な位置に設定したい:

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

をし、また、あなたのビューを崩壊できるように、別のデリゲートメソッドをオーバーライド:

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 
} 

私はここにあなたのためのテストプロジェクトを作成しました:

https://github.com/emankovski/CollapseSplitViews

+0

このいただきありがとうございます。私はそれを見てみましょう。 – Trygve

+0

いいえ - それは影響しません。私はまた、折りたたまれたビュー内のオブジェクトに、幅がゼロになるためにおそらく位置付けの制約が狂ってしまうという問題を抱えています。 – Trygve

関連する問題