代码之家  ›  专栏  ›  技术社区  ›  Duncan Groenewald

为什么添加到NSStackView时只有一个子视图可见

  •  0
  • Duncan Groenewald  · 技术社区  · 7 年前

    我试图以编程方式向水平堆栈视图添加几个NSTEXT字段,但是StackView只有一个字段可见,并且该字段排列不正确。

    for item in ArrayOfStrings {
        let view = NSTextField()
        view.stringValue = item
        stackView.addView(view, in: .leading)
    }
    

    stackView.addArrangedSubview(view)
    

    在Interface Builder中它似乎工作得很好-添加额外的子视图会自动显示它们并调整它们的大小。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Duncan Groenewald    7 年前

    不确定这不仅仅是一个bug,但似乎只需向NSTextField添加一个约束,就可以开始工作了。

    for item in shelf.activeItems {
                let view = ShelfItemTextField(frame: NSRect.zero)
                view.widthAnchor.constraint(greaterThanOrEqualToConstant: 20.0).isActive = true
                view.stringValue = item.product?.code ?? "-"
                stackView.addView(view, in: .leading)
                if item.isNew {
                    view.backgroundColor = Theme.Colors.newProduct
                    view.drawsBackground  = true
                }
            }
    
    推荐文章