【问题标题】:Wrapping text field wants to be 1 line high despite constraints尽管有限制,换行文本字段希望为 1 行高
【发布时间】:2016-09-10 03:08:52
【问题描述】:

这是我所做的(在 Xcode 7.3 中):

  • 创建一个新的视图 xib 文件
  • 将“环绕文本字段”拖到视图中
  • 将其调整为距父视图每侧 20 像素的标准距离
  • 打开固定工具(“添加新约束”)并单击所有四个红色工字梁形状,为每一侧添加约束
  • 点击“添加 4 个约束”

文本字段以橙色轮廓结束,并带有一个橙色虚线矩形,表示它希望为 1 行(22 像素)高。

单击“更新约束”不会执行任何操作。单击“更新帧”会将其缩小到 22 像素高,但它仍然是橙色的,因为它现在违反了其上边距限制。

为什么要达到那个高度?选择“包装文本字段”的重点是我希望它的高度超过一行。

【问题讨论】:

    标签: xcode cocoa interface-builder


    【解决方案1】:

    包装标签根据其中的文本数量决定内在内容的大小。如果你的占位符字符串是“标签”,自动布局将给它一行的空间,不管你给它多少底部空间。

    使用带有环绕标签的自动布局的正确方法是不给它一个固定的底部约束,而是给它一个更大或相等的约束。说类似“V:|-5-[包装标签]->=5-|”在 VSL 中。然后,当您设置标签的stringValue 时,它将能够在底部约束具有上限的情况下自行扩展。

    【讨论】:

    • 1.这是一个文本字段,用于用户输入,而不是文本标签。是否同样适用?我没想到会这样。 2.即使是标签的情况,在Interface Builder中真的没有办法实现吗?让我想回到旧的杆和弹簧。
    • 1.对。在任何情况下,标签都是 NSTextFields。 2. 在 IB 中,将其设置为底部约束并将关系更改为大于或等于
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-22
    • 1970-01-01
    • 2016-06-21
    • 2012-08-23
    相关资源
    最近更新 更多