मेरा लक्ष्य एक ऐसा दृश्य बनाना है जो गोइल डॉक्स टेक्स्ट एडिटर के समान है, जहां टिप्पणियों के पीछे टिप्पणी को हाइलाइट किया गया है। एनएसटीएक्स्ट व्यू एनएसवी व्यू और एनएसएसक्रॉल व्यू
मेरे समाधान एक NSScrollView
एक NSView
(दस्तावेज़ दृश्य के रूप में सेट) से युक्त है कि स्क्रॉल है और शामिल दोनों पाठ, और अन्य NSView
हाइलाइट हो जाएगा कि के NSTextView
।
इस काम के लिए, 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
...
यह किया जा सकता है?
यह एक अच्छा समाधान की तरह दिखता है। एक और समाधान जिसे मैंने सोचा था, हाइलाइटिंग दिखाने के लिए 'NSTextView' पर मुख्य 'NSTextLayer' परत के नीचे' कैलियर 'उदाहरण जोड़ना था, लेकिन यह समाधान बेहतर दिखता है। तुम क्या सोचते हो? – jamespick