如何使NSScollview正确滚动(Swift)

时间:2014-11-23 17:00:44

标签: macos swift

似乎我遇到NSScrollview类的方法有问题,我想填写一个滚动视图,一旦我点击一个按钮就填充了NSBox' s。

@IBAction func filler(sender: AnyObject)
{
    for (var k = 0; k  <= 20; k++)
    {
        var box: NSBox = NSBox()

        var pos = NSRect(x:10, y:170-(70+5)*k, width:488, height:70)
        box.frame = pos

        scroller.documentView = box
     }
}

点击按钮后,最后一个框出现在与我指定的位置不完全相同的位置...

如果我选择使用方法.contentView.addSubview(box)它会显示所有方框但滚动不能正确滚动,当我滚动时,我可以看到一些位于底部的方框但是一旦我发布滚动,盒子到达前一个位置。

@IBAction func filler(sender: AnyObject)
{
    for (var k = 0; k  <= 20; k++)
    {
        var box: NSBox = NSBox()

        var pos = NSRect(x:10, y:170-(70+5)*k, width:488, height:70)
        box.frame = pos

        scroller.contentView.addSubview(box)
     }
}

我该怎么办?

1 个答案:

答案 0 :(得分:0)

您需要将框作为子视图添加到单独的视图中,正确设置其大小并将该视图设置为滚动视图的documentView。

顺便说一句,你确定170-(70+5)*k对于y位置是否正确?