XCode中macOS Swift项目视图约束禁用原因及启用条件
要在Xib里启用锚点(Anchors)和约束(Constraints)功能,你的视图/窗口需要满足以下核心条件:
开启Auto Layout全局设置
打开Xib文件后,在右侧**File Inspector(文件检查器)的「Interface Builder Document」区域,确认「Layout」选项设为「Auto Layout」而非「Manual」。再选中窗口或顶层视图,在Size Inspector(尺寸检查器)**里勾选「Use Auto Layout」开关。视图必须嵌入合法父视图层级
要添加约束的视图不能处于游离状态,必须作为子视图嵌入到父视图(比如窗口的contentView、自定义容器视图等)中。你可以在Xib左侧的**Document Outline(文档大纲)**里确认视图层级,确保目标视图存在于合法的父视图之下。关闭「Translates Autoresizing Mask Into Constraints」属性
对于Xib中拖入的视图,默认该属性是关闭的,但如果被修改过,选中目标视图后在**Identity Inspector(身份检查器)**里取消勾选该选项。如果是代码创建后加入Xib的视图,必须手动在代码中设置:view.translatesAutoresizingMaskIntoConstraints = false
这个属性开启时,系统会自动基于 autoresizing mask 生成约束,导致手动添加约束的功能被禁用。确保窗口/视图控制器的布局模式匹配
如果是窗口,在Size Inspector里将「Content Size Style」设为「Automatic」,让Auto Layout能正确计算窗口尺寸;如果是视图控制器,勾选「Resize View From NIB」选项,让控制器依赖Auto Layout调整视图大小。
内容的提问来源于stack exchange,提问作者Stephan

