【问题标题】:How to add NSTextFields to NSScrollView如何将 NSTextFields 添加到 NSScrollView
【发布时间】:2017-03-30 23:13:13
【问题描述】:

我想动态添加多个NSTextFields 到NSScrollView

代码:

func addLabel(data: String)
{
    let offset = labelCount*20
    let label = NSTextField(frame: NSMakeRect(0, CGFloat(offset), 200, 20))
    label.stringValue = data
    scrollView.documentView?.addSubview(label)
    labelCount += 1

    // scrollView is IBOutlet
    // labelCount is var to keep record of number of labels
}

问题:

它将NSTextFields 正确添加到NSScrollView,但它们仅在可见部分可用之前添加。 NSScrollView 的可见部分填满后,不再添加NSTextFields。

即使可见部分已满,我也需要添加NSTextFields 并滚动查找其他部分。

我该怎么做?

【问题讨论】:

  • 找出documentView属性是什么。
  • @ElTomato 你的意思是它的类型?如果是,那么它的类型是NSView
  • @ElTomato 当我打印scrollView.documentView!.subviews 的子视图时,我可以将NSTextField 的列表添加到其中。

标签: swift macos cocoa nsscrollview


【解决方案1】:

如下所示。

scrollView.documentView?.setFrameSize(CGSize(width: CGFloat(labelCount) * 200, height: 20))

【讨论】:

  • 代码有一个小问题。 1)。我正在垂直滚动,所以CGSize(width: 469, height: CGFloat(labelCount) * 200 )。 2)。增加这么多的大小会增加不必要的空滚动空间。所以,CGSize(width: 469, height: CGFloat(labelCount) * 20 + 20 )。它完美地设置了框架,没有任何额外的空间。感谢您指引我正确的方向。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多