Моя цель - сделать представление, похожее на текстовый редактор Goole Docs, с комментарием, выделяющим текст, где есть комментарии. NSTextView внутри NSView и NSScrollView
Мое решение иметь NSScrollView
содержащий NSView
(набор в качестве вида документа), что свитки и содержит одновременно NSTextView
текста и других NSView
с, которые будут основные направления.
Для этого необходимо, чтобы NSTextView
должен был быть размером с NSScrollView
. Тем не менее, я не могу заставить NSTextView
иметь такое поведение.
код у меня для макета:
LatinViewController: loadView()
...
let latinView = LatinView()
latinView.autoresizingMask = [.ViewWidthSizable]
latinView.wantsLayer = true
latinView.layer?.backgroundColor = Theme.greenColor().CGColor
self.latinView = latinView
scrollView.documentView = latinView
...
LatinView: INIT()
...
let textView = LatinTextView()
textView.translatesAutoresizingMaskIntoConstraints = false
textView.string = "Long string..."
self.addSubview(textView)
self.textView = textView
self.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[text]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["text": textView]))
self.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|[text]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["text": textView]))
...
LatinTextView: INIT()
...
self.minSize = NSMakeSize(0, 0)
self.maxSize = NSMakeSize(0, CGFloat(FLT_MAX))
self.verticallyResizable = true
self.horizontallyResizable = false
self.textContainer?.heightTracksTextView = false
...
Можно ли это сделать?
Это похоже на отличное решение. Другое решение, о котором я думал, состояло в том, чтобы просто добавить экземпляры CALayer под основным слоем «NSTextLayer» в «NSTextView», чтобы показать выделение, но это решение выглядит лучше. Как вы думаете? – jamespick