首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在TextField使用换行符垂直扩展时扩展包含视图的高度

如何在TextField使用换行符垂直扩展时扩展包含视图的高度
EN

Stack Overflow用户
提问于 2020-02-17 21:51:08
回答 1查看 175关注 0票数 0

我有一个在scrollView中垂直展开的视图数组。视图具有相同的宽度,并且从上到下排列。每个View都有一个多行文本域,该文本域从固定的高度开始,并随着行的增加而变高。如何将父视图的高度限制为文本字段的高度?有没有可能做这样的事情(在视图内部约束视图)?

代码语言:javascript
运行
AI代码解释
复制
Class DocCell: NSView {
    // removed unnecessary components

    var textField: NSTextField!   

    override func updateConstraints() {
        NSLayoutConstraint.activate([
            heightAnchor.constraint(equalTo: textField.heightAnchor, constant: 10),
            // ..other constraints
        ])
    }
}

这样做的目的是,我不必在每次textField添加新行时都更新每个视图的高度,并且包含视图的大小只会随着textField的增加而扩展。

EN

回答 1

Stack Overflow用户

发布于 2020-02-18 17:35:18

的目标是,我不必在每次textField添加新行时都更新每个视图的高度,并且包含视图的大小会随着textField的增加而扩展。

你别无选择。每次添加新行时,都需要更新字段的高度。例如,您可以覆盖NSTextField子类中的textDidChange:,然后调用invalidateInstrinsicContentSize (在调用super之后)并在那里重新计算大小:

代码语言:javascript
运行
AI代码解释
复制
override func textDidChange(_ note: Notification) {
    super.textDidChange(note)
    invalidateIntrinsicContentSize()
}

override var intrinsicContentSize: NSSize {
    let cell = self.cell as! NSTextFieldCell
    var boundingRect = frame
    boundingRect.size.height = CGFloat.max
    return cell.cellSize(for: boundingRect)
}

这将让您的其他现有约束做正确的事情,只要您将拥抱和压缩阻力设置为1000。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60270874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档