Cocoa Autolayout - 为什么我不能删除或修改文本字段上的(紫色)宽度约束?

Chr*_*per 17 layout cocoa interface-builder osx-lion

我正在使用autolayout构建一个简单的应用程序,我遇到了一个奇怪的情况.我将文本字段放在大型开放视图的空白部分中,这样除了超级视图之外不会受到任何影响,但是当我尝试将"宽度"约束修改为> =而不是==时,它会创建一个新约束并拒绝修改旧的.我无法删除它,或更改其任何属性,因为它只是创建一个新属性.

这是两个约束的比较,紫色的是顽固的,蓝色的是新创造的约束.

约束比较

为什么紫色圆形不可修改?

Kri*_*son 17

通过将优先级设置为1,我已经解决了IB中不可删除但不需要的约束的存在.看起来不是正确的事情,但有时我不够聪明,不能成为Cocoa开发人员.


Chr*_*per 11

我的问题与以下事实有关:没有足够的其他约束添加宽度将被迫改变.当我添加更多其他约束(例如前导和尾随空格)时,我就可以改变紫色约束(事实上,它消失了,我不得不添加自己的约束).

看起来很奇怪你不能添加自己的约束,除非它们有可能被破坏,但我想这就是它在某些情况下被集成到IB中的方式.


小智 6

降低紫色约束的优先级也将使它们可编辑.