NSSplitView分频器的起始位置(Starting Position of NSSplitVi

2019-07-31 01:38发布

如何设置一个NSSplitView的起始位置?

我发现的最接近的东西,看起来像它的工作是setPosition两种

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

这似乎并不尽管做任何事情,我仍然SPLITVIEW开始在中心的分隔符。

有任何想法吗?

Answer 1:

也许这是中心? 如果SPLITVIEW正确挂接到拆分视图,该代码应工作。 你或许应该登录[SPLITVIEW minPossiblePositionOfDividerAtIndex:0]和[SPLITVIEW maxPossiblePositionOfDividerAtIndex:0]尝试设置分隔条的位置,所以你知道的可能值之前。



Answer 2:

你不设置分隔条的位置,您将NSSplitView的子视图的大小。 分频器然后自动重新定位。

这是我如何定位我的分频器和子视图大小(SWIFT):

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


Answer 3:

NSSplitView需要初始非大小的界限,使他们正确地布局。 如果您的视图具有零大小,那么就不会显示出预计的布局。

最好的办法是提供非零布局(这是IB做什么),但有时这是不可能的。

如果你不能提供非零大小,那么我认为你必须提供适当的- (void)splitView:(NSSplitView *)splitView resizeSubviewsWithOldSize:(NSSize)oldSize委托方法实现手动布局一切自己。 (这是我目前最好的做法)



Answer 4:

在视图的类住房拆分视图

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

或者你需要的地方开始。



文章来源: Starting Position of NSSplitView divider