Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa touch NSSplitView初始分隔器位置?_Cocoa Touch_Cocoa - Fatal编程技术网

Cocoa touch NSSplitView初始分隔器位置?

Cocoa touch NSSplitView初始分隔器位置?,cocoa-touch,cocoa,Cocoa Touch,Cocoa,我有一个NSSplitView,它使用自动布局将两个子视图放置在其中 一切都很好,但出于美观的原因,我想将分割器的初始位置设置为一个常量(300像素)。我没有使用界面生成器 如果我执行[\u splitView setPosition:300 of divideratindex:0],我看不到任何效果,如果我在这之后添加一个[\u splitView adjustSubviews]调用,也是一样的 有什么建议吗?我遇到了同样的问题。如果在将子视图添加到splitView之后立即调用,setPos

我有一个NSSplitView,它使用自动布局将两个子视图放置在其中

一切都很好,但出于美观的原因,我想将分割器的初始位置设置为一个常量(300像素)。我没有使用界面生成器

如果我执行
[\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
。这是一个奇怪的解决方案