如何设置NSSplitView的起始位置?
我发现的最接近的事情就是setPosition
//Set splitView position.
[splitView setPosition:330 ofDividerAtIndex:0];
这似乎没有做任何事情,我的splitview仍然从中间的分隔符开始。
任何想法?
答案 0 :(得分:5)
您没有设置分隔符的位置,您可以设置NSSplitView子视图的大小。然后自动重新定位分隔符。
这就是我如何定位分区和子视图的大小(在swift中):
let subview: NSView = mySplitView.subviews[1] as NSView
subview.setFrameSize(NSMakeSize(subview.frame.size.width, 100))
答案 1 :(得分:2)
NSSplitView
需要初始的非大小边界才能使它们正确布局。
如果您的视图为零大小,则它不会显示预期的布局。
最好的方法是提供非零布局(这就是IB所做的),但有时这是不可能的。
如果你不能提供非零大小,那么我认为你必须提供适当的- (void)splitView:(NSSplitView *)splitView resizeSubviewsWithOldSize:(NSSize)oldSize
委托方法实现来自己手动布局所有内容。 (这是我目前的最佳做法)
答案 2 :(得分:1)
也许那是中心?如果splitView正确连接到拆分视图,那么该代码应该可以正常工作。您应该在尝试设置分隔符的位置之前记录[splitView minPossiblePositionOfDividerAtIndex:0]和[splitView maxPossiblePositionOfDividerAtIndex:0],以便了解可能的值。
答案 3 :(得分:0)
在视图的类中包含拆分视图
override func viewWillAppear() {
self.mySplitView.setPosition(120, ofDividerAtIndex: 0)
}
或者您希望它开始的任何地方。