Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.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

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
Macos 自动布局灵活的宽度_Macos_Cocoa_Autolayout - Fatal编程技术网

Macos 自动布局灵活的宽度

Macos 自动布局灵活的宽度,macos,cocoa,autolayout,Macos,Cocoa,Autolayout,我有一个观点。在该视图中,我用代码生成了许多子视图。我希望每个子视图都延伸到封闭视图的宽度。我尝试在代码中添加约束,但遇到运行时异常 NSView *trackcontainer = [self trackContainerWithTrack:track]; [self addSubview:trackcontainer]; [trackcontainer addConstraints: [NSLayoutConstraint constraintsWithVis

我有一个观点。在该视图中,我用代码生成了许多子视图。我希望每个子视图都延伸到封闭视图的宽度。我尝试在代码中添加约束,但遇到运行时异常

   NSView *trackcontainer = [self trackContainerWithTrack:track];
   [self addSubview:trackcontainer];
   [trackcontainer addConstraints: [NSLayoutConstraint
       constraintsWithVisualFormat:@"|-5-[trackcontainer]-5-|"
                           options:0 metrics:nil
                             views:NSDictionaryOfVariableBindings(trackcontainer)]];
例外情况是:

2014-05-12 16:58:20.812 testApp[7597:303] Unable to install constraint on view.
Does the constraint reference something from outside the subtree of the view?
That's illegal. constraint:<NSLayoutConstraint:0x60000028e880 H:|-(5)-[BTSDoubleClickView:0x600000340fd0]
(Names: '|':BTSAlbumTracklistView:0x608000137c00 )> view:<BTSDoubleClickView: 0x600000340fd0>
2014-05-12 16:58:20.812 testApp[7597:303]无法在视图上安装约束。
约束是否引用了视图子树之外的内容?
那是违法的。约束:视图:
当然,这是在视野之外。我希望它引用superview,这就是我使用管道角色的原因

编辑:我刚刚意识到我应该将约束添加到superview,而不是子视图。我这样做了,但现在我得到了一个不同的错误:

2014-05-12 22:37:47.218 autolayouttest[29399:303] Unable to simultaneously satisfy constraints:
(
    "<NSAutoresizingMaskLayoutConstraint:0x61800009e730 h=--& v=--& H:|-(10)-[NSView:0x60000013aa40]   (Names: '|':FunkyView:0x60800013aa40 )>",
    "<NSLayoutConstraint:0x60000009eaa0 H:|-(NSSpace(20))-[NSView:0x60000013aa40]   (Names: '|':FunkyView:0x60800013aa40 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x60000009eaa0 H:|-(NSSpace(20))-[NSView:0x60000013aa40]   (Names: '|':FunkyView:0x60800013aa40 )>

Set the NSUserDefault NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints to YES to have -[NSWindow visualizeConstraints:] automatically called when this happens.  And/or, break on objc_exception_throw to catch this in the debugger.
2014-05-12 22:37:47.218自动布局测试[29399:303]无法同时满足约束:
(
"",
""
)
将尝试通过打破约束进行恢复
将NSUserDefault NSConstraintBasedLayoutVisualizationMutuallyExclusiveConstraints设置为YES,以便在发生这种情况时自动调用-[NSWindow VisualizationConstraints:]。和/或,在objc_异常_抛出时中断,以便在调试器中捕获该异常。

我知道存在冲突,可能是因为我在创建视图框架时指定了宽度/高度?我真的不知道该怎么办。我需要添加多少约束?我可以删除AutoresizingMaskLayoutConstraint吗?我在视图上没有任何自动调整大小的遮罩(我也尝试将其设置为0,以防万一,没有区别)。

当使用自动布局代替自动调整大小的遮罩时,您需要在视图上调用
setTranslatesAutoResizengMaskintoConstraints:no