12

NSSplitViewの開始位置を設定するにはどうすればよいですか?

それが機能するように見える私が見つけた最も近いものはsetPositionです

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

これは何もしないようですが、私のスプリットビューはまだ中央の仕切りから始まります。

何か案は?

4

4 に答える 4

5

仕切りの位置を設定するのではなく、NSSplitViewのサブビューのサイズを設定します。その後、仕切りは自動的に再配置されます。

これが、仕切りとサブビューのサイズを(迅速に)配置した方法です。

let subview: NSView = mySplitView.subviews[1] as NSView
subview.setFrameSize(NSMakeSize(subview.frame.size.width, 100))
于 2015-01-03T22:24:31.143 に答える
3

NSSplitView正しくレイアウトするには、サイズが変更されていない最初の境界が必要です。ビューのサイズがゼロの場合、期待されるレイアウトは表示されません。

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

- (void)splitView:(NSSplitView *)splitView resizeSubviewsWithOldSize:(NSSize)oldSizeゼロ以外のサイズを提供できない場合は、すべてを手動でレイアウトするための適切なデリゲートメソッドの実装を提供する必要があると思います。(これは私の現在のベストプラクティスです)

于 2014-05-26T02:16:21.587 に答える
3

分割ビューを収容するビューのクラス

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

または、開始したい場所ならどこでも。

于 2017-03-12T22:10:42.670 に答える
1

多分それが中心ですか?splitViewが分割ビューに正しく接続されている場合、そのコードは機能するはずです。可能な値がわかるように、仕切りの位置を設定する前に、[splitView minPossiblePositionOfDividerAtIndex:0]と[splitView maxPossiblePositionOfDividerAtIndex:0]をログに記録する必要があります。

于 2012-08-17T00:46:44.217 に答える