Cocoa touch NSSplitView初始分隔器位置?
我有一个NSSplitView,它使用自动布局将两个子视图放置在其中 一切都很好,但出于美观的原因,我想将分割器的初始位置设置为一个常量(300像素)。我没有使用界面生成器 如果我执行Cocoa touch NSSplitView初始分隔器位置?,cocoa-touch,cocoa,Cocoa Touch,Cocoa,我有一个NSSplitView,它使用自动布局将两个子视图放置在其中 一切都很好,但出于美观的原因,我想将分割器的初始位置设置为一个常量(300像素)。我没有使用界面生成器 如果我执行[\u splitView setPosition:300 of divideratindex:0],我看不到任何效果,如果我在这之后添加一个[\u splitView adjustSubviews]调用,也是一样的 有什么建议吗?我遇到了同样的问题。如果在将子视图添加到splitView之后立即调用,setPos
[\u splitView setPosition:300 of divideratindex:0]代码>,我看不到任何效果,如果我在这之后添加一个[\u splitView adjustSubviews]
调用,也是一样的
有什么建议吗?我遇到了同样的问题。如果在将子视图添加到splitView之后立即调用,setPosition
似乎没有效果
我通过在调用setPosition
之前等待一段时间来解决这个问题。以下是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)
}
我遇到了同样的问题,但我通过调用viewDidAppear中的setPosition解决了这个问题。希望这有帮助
- (void)viewDidAppear {
[self.splitView setPosition:300 ofDividerAtIndex:0];
}
您可以发布更多关于您应用了哪些约束的信息吗?带有自动布局约束的NSScrollView有点灰色(至少对我来说),我还没有找到任何指导原则。如果删除约束,分割线会移动吗?设置分割线的位置不等于设置左侧视图的宽度吗?尝试将左视图的初始大小设置为300。可能的重复应该调用视图中的setPosition:ofDividerAtIndex:
函数,而不是viewDidLoad
。这是一个奇怪的解决方案