NSSplitViewの開始位置を設定するにはどうすればよいですか?
それが機能するように見える私が見つけた最も近いものはsetPositionです
//Set splitView position.
[splitView setPosition:330 ofDividerAtIndex:0];
これは何もしないようですが、私のスプリットビューはまだ中央の仕切りから始まります。
何か案は?
NSSplitViewの開始位置を設定するにはどうすればよいですか?
それが機能するように見える私が見つけた最も近いものはsetPositionです
//Set splitView position.
[splitView setPosition:330 ofDividerAtIndex:0];
これは何もしないようですが、私のスプリットビューはまだ中央の仕切りから始まります。
何か案は?
仕切りの位置を設定するのではなく、NSSplitViewのサブビューのサイズを設定します。その後、仕切りは自動的に再配置されます。
これが、仕切りとサブビューのサイズを(迅速に)配置した方法です。
let subview: NSView = mySplitView.subviews[1] as NSView
subview.setFrameSize(NSMakeSize(subview.frame.size.width, 100))
NSSplitView
正しくレイアウトするには、サイズが変更されていない最初の境界が必要です。ビューのサイズがゼロの場合、期待されるレイアウトは表示されません。
最良の方法はゼロ以外のレイアウトを提供することです(これはIBが行うことです)が、これが不可能な場合もあります。
- (void)splitView:(NSSplitView *)splitView resizeSubviewsWithOldSize:(NSSize)oldSize
ゼロ以外のサイズを提供できない場合は、すべてを手動でレイアウトするための適切なデリゲートメソッドの実装を提供する必要があると思います。(これは私の現在のベストプラクティスです)
分割ビューを収容するビューのクラス
override func viewWillAppear() {
self.mySplitView.setPosition(120, ofDividerAtIndex: 0)
}
または、開始したい場所ならどこでも。
多分それが中心ですか?splitViewが分割ビューに正しく接続されている場合、そのコードは機能するはずです。可能な値がわかるように、仕切りの位置を設定する前に、[splitView minPossiblePositionOfDividerAtIndex:0]と[splitView maxPossiblePositionOfDividerAtIndex:0]をログに記録する必要があります。