NSTextView滚动

问题描述 投票:0回答:1

如何使NSTextView可滚动?

问题:

  • 文本视图已显示,但不可滚动。我必须调整窗口大小以查看更多内容

问题:

  • 如何使文本视图可滚动。

代码:

class ViewController: NSViewController {

    private let textView                = NSTextView()

    //MARK: Manage Views

    override func viewDidLoad() {
        super.viewDidLoad()

        setupTextView()
    }


    private func setupTextView() {

        textView.isEditable      = false

        view.addSubview(textView)

        textView.translatesAutoresizingMaskIntoConstraints = false

        textView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
        textView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
        textView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
        textView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
    }

    override var representedObject: Any? {
        didSet {
        // Update the view, if already loaded.
        }
    }
}
swift macos cocoa nstextview
1个回答
0
投票

感谢Mark发表评论

[注:如Mark所述,在情节提要上执行此操作很简单且效果很好

引用:

代码(不完美,垂直滚动条不显示):

class ViewController: NSViewController {

    private let scrollView  = NSScrollView()
    private let textView    = NSTextView()

    override func viewDidLoad() {
        super.viewDidLoad()

        setupScrollView()
        setupTextView()
        addSomeText()
    }

    private func setupScrollView() {

        scrollView.hasVerticalRuler = true

        view.addSubview(scrollView)

        scrollView.translatesAutoresizingMaskIntoConstraints = false

        scrollView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
        scrollView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
        scrollView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
        scrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
    }

    private func setupTextView() {

        textView.isVerticallyResizable      = true
        textView.isHorizontallyResizable    = false
        textView.autoresizingMask           = .width //This is needed

        scrollView.documentView = textView
    }

    private func addSomeText() {

        for index in 1 ... 100 {
            textView.string.append("\(index)\n")
        }
    }

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

© www.soinside.com 2019 - 2024. All rights reserved.