Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 动态添加到NSStackView并添加滚动功能_Swift_Macos_Cocoa - Fatal编程技术网

Swift 动态添加到NSStackView并添加滚动功能

Swift 动态添加到NSStackView并添加滚动功能,swift,macos,cocoa,Swift,Macos,Cocoa,正如标题所说,我正在尝试将NSTextView和NSImageView动态添加到NSStackView。首先,我使用IB添加了一个滚动视图,它形成了一个有边框的滚动视图->剪辑视图->主视图->堆栈视图(垂直)的层次结构。我希望能够动态地将视图添加到堆栈视图中,并能够滚动浏览所有视图。我在带边框的滚动视图上使用了autolayout 问题:我通过添加100个NSTextViews并增加它们的y位置以相互叠加来测试这一点。但是,我无法滚动到顶部。几天来我一直在试图理解这一点,但我就是想不出来。我无

正如标题所说,我正在尝试将NSTextView和NSImageView动态添加到NSStackView。首先,我使用IB添加了一个滚动视图,它形成了一个有边框的滚动视图->剪辑视图->主视图->堆栈视图(垂直)的层次结构。我希望能够动态地将视图添加到堆栈视图中,并能够滚动浏览所有视图。我在带边框的滚动视图上使用了autolayout

问题:我通过添加100个NSTextViews并增加它们的y位置以相互叠加来测试这一点。但是,我无法滚动到顶部。几天来我一直在试图理解这一点,但我就是想不出来。我无法滚动并查看所有文本视图,但当我增加窗口大小时,可以看到更多的文本视图。蒂亚`

import Cocoa

class ViewController: NSViewController {

    var xLoc = CGFloat(0)
    var yLoc = CGFloat(0)

    @IBOutlet weak var mainView: NSStackView!
    @IBOutlet weak var belowMainView: NSStackView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.

        for index in 1...100 {
            var txt = "Num: \(index)"
            setup(text: txt)
        }
    }

    override var representedObject: Any? {
        didSet {
        // Update the view, if already loaded.
        }
    }

    func setup(text: String){
        let tempTextView = NSTextView(frame: NSMakeRect(xLoc, yLoc, 320, 10))
        tempTextView.append(text)
        tempTextView.isEditable = false
        tempTextView.translatesAutoresizingMaskIntoConstraints = false

//        mainView.addSubview(tempTextView)
        belowMainView.addSubview(tempTextView)

        yLoc += 20
    }
}

// Adding an append function to textView functionality
extension NSTextView {
    func append(_ string: String) {
        self.textStorage?.append(NSAttributedString(string: string))
        // Scrolls to end of document if it is out of view
        self.scrollToEndOfDocument(nil)
    }
}`

好吧,所以我发现问题是我没有调整我的belowMainStackView的大小。但现在我有另一个问题。每次我调整视图的大小时,它都会向上增长,但我需要向下增长。有什么办法吗?看@Taylor谢谢,但我解决了!