2012-08-16 19 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

私は何を言うべきか分かりません。制約の設定と関係があるのだろうか?私はちょうど分割ビューをドラッグし、各サイドにいくつかのボタンとテキストフィールドを追加しました(見えるようになるでしょう)。そしてその1行のコードを追加しました。 – rdelmar

+0

問題は他の場所にあるようですが、ユーザーがデフォルトのビューを選択できるようにする設定があります。スプリットビューをデフォルトのビューとして設定し、スプリットが中央にある場合です。別のビューをメインビューとして設定し、splitViewでビューをクリックすると、すべて正常に動作します。これを引き起こす原因は何ですか? – arooo

2

NSSplitViewは、レイアウトを正しく作成するために初期のサイズ以外の境界が必要です。 ビューのサイズがゼロの場合、予想されるレイアウトは表示されません。

最も良い方法は、非ゼロレイアウト(これはIBのことです)を提供することですが、これは不可能なこともあります。

ゼロ以外のサイズを指定できない場合は、適切な- (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中)サブビューのサイズを配置する方法です。

関連する問題