无法在 xib 中添加约束

Can't add constraints in xib

我有一个 xib,但我无法添加约束。当我控制点击和拖动时,我不能做任何事情,底部的按钮我也不能做任何事情。

我正在使用 xCode 11.

检查您尝试为其添加约束的 views/buttons 等的布局选项是否设置为自动。附上屏幕截图以供参考,希望对您有所帮助。

尝试使用“嵌入”按钮将视图嵌入到视图中。将新视图的 Layout 属性设置为 Autoresizing Mask。 现在您可以在新视图中的视图中使用自动布局了。

新视图应该有自动调整大小的蒙版,所有内容都已选中。

对于我在 macos 10.15.6,XCode 12.4 上,发生这种情况是因为我复制了一个 NSViewController 根视图并试图将其修改为子视图。似乎它还复制了一些隐藏的“无法约束”参数。

所以,不要做我做的事。

我遇到了这个问题,我刚刚弄清楚是什么原因造成的。

当我向我的视图控制器 XIB 添加一个新按钮时,我将按钮添加到 XIB 旁边的打开 space,然后将按钮拖动到左侧文档大纲中的视图下。如果您这样做,出于某种原因,它不会让您按住 Ctrl 键并拖动到视图以添加约束。

如果您添加一个新按钮并立即将其拖动到视图中,它应该允许您按住 Ctrl 键拖动约束。

另外请注意Size Inspector中的Layout参数。 xib 中每个组件有两种值:Inferred (Constraints) 和 Autosizing Mask。

如果选择 Inferred (Constraints),视图将被添加到父视图,而没有自动调整约束。这意味着无论您为此视图设置什么自动调整大小,添加到父视图时都没有影响。其实和“translatesAutoresizingMaskIntoConstraints”一样属性设置为false。

作为对比,如果选择自动调整大小蒙版,您在视图中定义的视图自动调整参数将在添加到父视图时应用。如果您在 xib 中使用自动调整大小,则应选择它。

您应该将视图的布局 属性 设置为推断(约束)