我有一个NSSplitView使用自动布局来定位它里面的两个子视图。NSSplitView初始分隔位置?
一切都很好,但我想将分隔线的初始位置设置为一个恒定值(300像素)的美学原因。我没有使用接口生成器。
如果我做的是[_splitView setPosition:300 ofDividerAtIndex:0];
,我看不到任何效果,如果在此之后再添加[_splitView adjustSubviews]
即可。
任何提示?
我有一个NSSplitView使用自动布局来定位它里面的两个子视图。NSSplitView初始分隔位置?
一切都很好,但我想将分隔线的初始位置设置为一个恒定值(300像素)的美学原因。我没有使用接口生成器。
如果我做的是[_splitView setPosition:300 ofDividerAtIndex:0];
,我看不到任何效果,如果在此之后再添加[_splitView adjustSubviews]
即可。
任何提示?
我遇到了同样的问题。看起来在将子视图添加到splitView后立即调用没有效果。
我在调用之前等了一会儿才解决了这个问题。这里是swift中的示例代码:
func delay(delay:Double, closure:()->()) {
let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay * Double(NSEC_PER_SEC)))
dispatch_after(time, dispatch_get_main_queue(), closure)
}
delay(0.05) {
splitView.setPosition(300, ofDividerAtIndex: 0)
}
您应该调用'viewWillAppear'中的'setPosition:ofDividerAtIndex:'函数而不是'viewDidLoad'。 –
这样一个奇怪的解决方案 – surfrider
我遇到了同样的问题,但我解决了它从viewDidAppear调用setPosition。希望这可以帮助。
- (void)viewDidAppear {
[self.splitView setPosition:300 ofDividerAtIndex:0];
}
你能发布更多关于你应用的约束的信息吗?带有自动布局约束的NSScrollView是一个灰色区域(至少对我来说),我还没有设法找到任何指导。如果你消除了你的约束,分频器会移动,会发生什么? –
是不是将分隔线的位置设置为等同于在左侧设置视图的宽度?尝试将左视图的初始大小设置为300. – NSAdam
可能出现[NSSplitView divider的开始位置]的重复(http://stackoverflow.com/questions/11995073/starting-position-of-nssplitview-divider) – Eonil