मेरे ऐप में NSScrollView
है जिसमें दस्तावेज़ दस्तावेज़ में लंबवत स्टैक्ड NSTextViews
शामिल हैं - जिनमें से प्रत्येक वर्टिकल दिशा में आकार बदलता है क्योंकि टेक्स्ट जोड़ा जाता है।एनएसटीएक्स्टव्यू का विस्तार करने के साथ ऑटोलायआउट का उपयोग
वर्तमान में, यह सब कोड में प्रबंधित है। NSTextViews
स्वचालित रूप से आकार बदलता है, लेकिन मैं NSViewFrameDidChangeNotification
के साथ उनका आकार बदल रहा हूं, अपनी सभी उत्पत्ति को पुन: खोलता हूं ताकि वे ओवरलैप न करें और उनके पर्यवेक्षण (स्क्रॉल व्यू के दस्तावेज़ दृश्य) का आकार बदल सकें ताकि वे सभी फिट हो जाएं और स्क्रॉल किए जा सकें।
ऐसा लगता है कि यह ऑटोलायआउट के लिए एक आदर्श उम्मीदवार होगा! मैंने पहले टेक्स्ट व्यू और उसके कंटेनर, अंतिम टेक्स्ट व्यू और उसके कंटेनर के बीच NSLayoutConstraints
सेट किया है, और एक-दूसरे के बीच प्रत्येक टेक्स्ट व्यू सेट किया है। फिर, यदि कोई टेक्स्ट व्यू बढ़ता है, तो यह स्वचालित रूप से बाधाओं को पूरा करने के लिए नीचे दिए गए टेक्स्ट दृश्यों की उत्पत्ति को "नीचे चलाता है", अंत में दस्तावेज़ दृश्य के आकार को बढ़ाता है, और सभी खुश हैं!
इसके अलावा, ऐसा लगता है कि NSTextView
स्वचालित रूप से बढ़ने का कोई तरीका नहीं है क्योंकि टेक्स्ट बाधाओं-आधारित लेआउट में जोड़ा जाता है? सटीक उसी NSTextView
का उपयोग करके जो टेक्स्ट के रूप में स्वचालित रूप से विस्तारित किया गया था, अगर मैं इसकी ऊंचाई के लिए बाधा निर्दिष्ट नहीं करता हूं, तो यह 0 तक डिफॉल्ट करता है और दिखाया नहीं जाता है। यदि मैं एक बाधा निर्दिष्ट करता हूं, यहां तक कि असमानता जैसे कि = = 20, यह उस आकार पर फंस गया रहता है और पाठ के रूप में नहीं बढ़ता है।
मुझे संदेह है कि इसे -intrinsicContentSize
के एनएसटीक्स्टव्यू के कार्यान्वयन के साथ करना है, जो डिफ़ॉल्ट रूप से (NSViewNoInstrinsicMetric, NSViewNoInstrinsicMetric)
देता है।
तो मेरे प्रश्न: यदि मैं NSTextView
को अपने टेक्स्ट के लेआउट के आधार पर एक और सार्थक intrinsicContentSize
वापस करने के लिए उपclasses करता हूं, तो क्या मेरा ऑटोलाउटआउट अपेक्षित काम करेगा?
लंबवत आकार बदलने वाले NSTextView के लिए intrinsicContentSize
को लागू करने पर कोई संकेतक?
है का विस्तार होगा आप जोड़ सकते है कुछ ग्राफिक/स्क्रीनशॉट/कृपया सेटअप को समझने के लिए वायरफ्रेम कृपया? क्या आपने टेक्स्ट ऊंचाई की गणना करने और इसे 'intrinsicContentSize' में वापस करने का प्रयास किया था? – JJD