有问题以编程方式滚动到NSScrollView的末尾

时间:2016-07-20 16:22:44

标签: swift xcode macos nsscrollview

我有一个NSScrollView,每当我点击一个按钮,一个对象在滚动视图中加起来,我添加了下面的代码,所以每次按下按钮并且对象在滚动视图中添加,我的滚动视图滚动到添加新对象的滚动视图的末尾:

let widthcc = scollingView.documentView!.frame.size.width + 156
    scollingView.contentView.scrollPoint( NSPoint ( x: widthcc, y: 0))

但我没有得到我想要的结果,无论我在实际最后添加的对象后面的一个对象中执行新的滚动位置。

我做错了什么?

继承我的xcode项目: https://dl.dropboxusercontent.com/u/64067896/2_infinite_scrolle.zip

1 个答案:

答案 0 :(得分:0)

快速解决方案是:

     @IBAction func myButtonAction(sender: AnyObject) {
    add()

    NSOperationQueue.mainQueue().addOperationWithBlock {[unowned self] in

        let widthcc = self.scollingView.documentView!.frame.size.width + 156
        print(widthcc)
        self.scollingView.contentView.scrollPoint( NSPoint ( x: widthcc, y: 0))
    }

}

它允许布局完成调整大小,然后滚动到UI循环循环结束。