如何使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.
}
}
}
感谢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.
}
}
}