2010-03-07 11 views
25

क्या कोई मुझे बता सकता है कि एनएसटीक्स्टफिल्ड और एनएसटीएक्स्टव्यू के बीच मुख्य अंतर क्या हैं? मुझे पता है कि NSTextView में अधिक सुविधाएं हैं और आमतौर पर लंबे ग्रंथों के लिए उपयोग की जाती है, और एनएसटीक्स्टफिल्ड आमतौर पर एक-पंक्ति सादा पाठ फ़ील्ड के लिए उपयोग की जाती है, लेकिन यदि मैं सही ढंग से समझता हूं, तो NSTextField को जिम्मेदार स्ट्रिंग्स और एकाधिक लाइनों के साथ भी उपयोग किया जा सकता है ...NSTextField या NSTextView?

मुझे विशेष रूप से एक नियंत्रण है जो एक टाइमलाइन दृश्य के अंदर संदेशों का पाठ प्रदर्शित करेगा जैसे कि Tweetie या किसी अन्य समान सॉफ़्टवेयर में। मैं केवल आवश्यकताएँ हैं:

  • यह 1-4 पंक्तियों में टेक्स्ट प्रदर्शित करना चाहिए
  • यह पाठ में लिंक (के रूप में मैं समझता हूँ, यह दोनों नियंत्रण में आसान होना चाहिए दिखाने के लिए सक्षम होना चाहिए - http://developer.apple.com/mac/library/qa/qa2006/qa1487.html)
  • यह उपयोगकर्ता को
  • को चुनने और प्रतिलिपि बनाने देना चाहिए, इसे उपयोगकर्ता को पाठ को स्क्रॉल करने, पाठ को संपादित करने या संदर्भ मेनू दिखाने के लिए नहीं होना चाहिए जो आमतौर पर संपादन योग्य टेक्स्ट फ़ील्ड में दिखाई देता है, यह भी दिखाना नहीं चाहिए इस क्षेत्र में एक टेक्स्ट कर्सर

ऐसी आवश्यकताओं के साथ, क्या मेरे लिए NSTextField या NSTextView का उपयोग करना बेहतर है? क्या NSTextField पर्याप्त है, या NSTextView में कुछ महत्वपूर्ण है कि NSTextField नहीं करता है?

उत्तर

32

क्या कोई मुझे बता सकता है कि एनएसटीक्स्टफिल्ड और एनएसटीक्स्टव्यू के बीच मुख्य अंतर क्या हैं? मुझे पता है कि NSTextView में अधिक सुविधाएं हैं और आमतौर पर लंबे ग्रंथों के लिए उपयोग की जाती है, और एनएसटीक्स्टफिल्ड आमतौर पर एक-पंक्ति सादा पाठ फ़ील्ड के लिए उपयोग की जाती है, लेकिन यदि मैं सही ढंग से समझता हूं, तो NSTextField को जिम्मेदार स्ट्रिंग्स और एकाधिक लाइनों के साथ भी उपयोग किया जा सकता है ...

तकनीकी रूप से सच है, लेकिन आप सामान्य रूप से उन पाठों के लिए टेक्स्ट फ़ील्ड का उपयोग करते हैं जो सादा पाठ और आमतौर पर केवल एक पंक्ति होते हैं। (, कई पंक्तियों संभाल के रूप में एक पाठ क्षेत्र उन्हें स्वीकार कर सकते हैं। और कुछ नहीं, एक तरीका है कि क्या आप पाठ के साथ कर रहे हैं के लिए समझ में आता है में पंक्ति विराम पट्टी है।)

  • यह पाठ प्रदर्शित करना चाहिए 1-4 के बारे में लाइनों

NSTextView में।

  • यह पाठ में लिंक को दिखाने के लिए सक्षम होना चाहिए (जैसा कि मैं समझता हूँ, यह दोनों नियंत्रण में आसान होना चाहिए - http://developer.apple.com/mac/library/qa/qa2006/qa1487.html)

NSTextView। एक NSTextField में सहायक लिंक मुश्किल है।

  • यह उपयोगकर्ता का चयन करते हैं और पाठ

या तो इस के लिए काम करेंगे कॉपी चाहिए।

  • यह देना चाहिए उपयोगकर्ता पाठ स्क्रॉल,

NSTextField या NSTextView NSScrollView बिना। आप लाइब्रेरी से टेक्स्ट व्यू खींचकर और फिर लेआउट मेनू से "अनदेखा ऑब्जेक्ट्स" चुनकर आईबी में बाद में कर सकते हैं।

पाठ संपादित करें,

या तो इस के लिए काम करेंगे।

या संदर्भ मेनू है कि आमतौर पर संपादन योग्य पाठ फ़ील्ड में प्रकट होता है दिखाने के लिए,

हाँ, यह होना चाहिए। आपको हमेशा "कॉपी" और केवल-पढ़ने वाली सेवाओं जैसे मेनू आइटम प्रदान करना चाहिए। या तो नियंत्रण आपके लिए यह करना चाहिए; इस से मत लड़ो।

तो यह और भी इस क्षेत्र

या तो इस के लिए काम करेंगे में एक पाठ कर्सर नहीं दिखाने चाहिए।

यदि आप चयन सक्षम छोड़ते हैं (जो आपको आम तौर पर करना चाहिए), तो उपयोगकर्ता क्षेत्र में क्लिक करते समय कर्सर दिखाएगा। यह एक विशेषता है, क्योंकि यह इंगित करता है कि चयन एंकर शिफ्ट-⌘-तीर चयन के लिए कहां है।

ऐसी आवश्यकताओं के साथ, क्या मेरे लिए एनएसटीक्स्टफिल्ड या NSTextView का उपयोग करना बेहतर है?

मैं एनएसटीक्स्टव्यू का उपयोग करूंगा।

+1

जानकारी के लिए धन्यवाद। ऐसा लगता है कि सब कुछ ठीक काम कर रहा है, मैं भी shouldDrawInsertionPoint का उपयोग कर पाठ कर्सर को अक्षम करने में कामयाब रहा। एक चीज जो मैं करने में सक्षम नहीं था उसे हमेशा एक्स-आकार वाले के बजाय एक तीर कर्सर दिखाने के लिए मनाने के लिए था, लेकिन मैं इसके साथ रह सकता हूं ... –

+1

@Psionides: X-shaped? तुम्हारा मतलब आई-बीम है? आप पाठ दृश्य में 'discardCursorRects' भेजने का प्रयास कर सकते हैं। –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^