दिलचस्प पोस्ट
एंड्रॉयड। कैसे डेटासेट चंचल () विधि और ListViews काम को सूचित नहीं करता है? मोंगो डीबी: एक से कई संग्रहों से डेटा एकत्र करें..कैसे? एडीटी एंड्रॉइड गतिविधि के निर्माण की अनुमति नहीं देगा I एंड्रॉइड 4.0+ के लिए मैं बाहरी एसडी कार्ड पथ कैसे प्राप्त करूं? "सर्वर के लिए संस्करण" को बनाए रखने का सही तरीका क्या है – गिट में केवल कॉन्फ़िग फाइल बदल दी गई है? मैं अपने डब्लूसीएफ सेवा पर कन्स्ट्रक्टर को कैसे मान दूं? क्या सी ++ में अपवाद वास्तव में धीमा है मैं सर्वर-साइड स्क्रिप्ट का उपयोग कर एक वेबपृष्ठ का एक स्क्रीनशॉट कैसे बना सकता हूं? जावा में स्ट्रिंग विधि के साथ स्ट्रिंग को एक पूर्णांक सरणी कैसे रूपांतरित करना उद्देश्य सी में मुझे क्यों जांचना चाहिए कि आत्म = शून्य नहीं है? क्या मैं मोंगोडीबी ऑब्जेक्ट को तिथि से पूछ सकता हूं? Javac और ग्रहण संकलक के बीच क्या अंतर है? क्या यह पायथनिक का उपयोग खंभे के रूप में करना है? विशिष्ट समय पर सेवा शुरू करने के लिए अलार्ममैनेजर का उपयोग करना PHP में किसी शब्द को एक संख्या में परिवर्तित करने का एक आसान तरीका है?

कैसे एक multiline UITextfield बनाने के लिए?

मैं एक ऐसे आवेदन को विकसित कर रहा हूं जहां उपयोगकर्ता को कुछ जानकारी लिखनी है। इस प्रयोजन के लिए मुझे एक UITextField जरूरत है जो बहु-रेखा है (सामान्य UITextField में एक पंक्ति है)।

जैसा कि मैंने Googling कर रहा हूँ मुझे इस उद्देश्य के लिए UITextfield बजाय UITextView का उपयोग करने का UITextfield

वेब के समाधान से एकत्रित समाधान "कैसे एक multiline UITextfield बनाने के लिए?"

UITextField विशेष रूप से एक-पंक्ति ही है

आपकी Google खोज सही है, आपको UITextField बजाय UITextView का उपयोग करने की आवश्यकता है, जिसमें UITextField टेक्स्ट के प्रदर्शन और संपादन शामिल हैं।

इंटरफ़ेस बिल्डर में, एक UITextView जोड़ें जहां आप यह चाहते हैं और "संपादन योग्य" बॉक्स चुनें। यह डिफ़ॉल्ट रूप से बहुरेखित होगा।

ठीक है, मैंने इसे कुछ चाल के साथ किया;) पहले एक UITextField निर्माण किया और इसके size बढ़ाया:

 CGRect frameRect = textField.frame; frameRect.size.height = 53; textField.frame = frameRect; 

फिर एक UITextView निर्माण उसी क्षेत्र में करें जो UITextField बनाया है, और इसकी background color हटा दिया है। अब ऐसा लगता है कि आपके पास कई पंक्तियाँ TextField !

एकाधिक पंक्ति व्यवहार के अलावा, UITextView और UITextField के बीच मुख्य अंतर यह है कि UITextView प्लेसहोल्डर का प्रस्ताव नहीं करता है। इस सीमा को बाईपास करने के लिए, आप "नकली प्लेसहोल्डर" के साथ एक यूआईटीक्स्टव्यू का उपयोग कर सकते हैं।

विवरण के लिए इस तरह के प्रश्न देखें: UITextView में प्लेसहोल्डर

आप UITextView का उपयोग करते हुए नकली एक UITextField कर सकते हैं। आपके पास समस्या यह है कि आप जगह धारक की कार्यक्षमता खो देंगे

यदि आप UITextView का उपयोग करना चुनते हैं और प्लेसहोल्डर की आवश्यकता होती है, तो ऐसा करें:

आपके दृश्य मेंडिडलोड प्लेसहोल्डर को रंग और पाठ सेट करते हैं:

 myTxtView.textColor = .lightGray myTxtView.text = "Type your thoughts here..." 

फिर जब आपका UITextView चयनित हो तो प्लेसहोल्डर गायब हो जाए:

 func textViewDidBeginEditing (textView: UITextView) { if myTxtView.textColor.textColor == ph_TextColor && myTxtView.isFirstResponder() { myTxtView.text = nil myTxtView.textColor = .white } } 

जब उपयोगकर्ता संपादन खत्म करता है, तो सुनिश्चित करें कि कोई मान है। यदि नहीं है, तो प्लेसहोल्डर को फिर से जोड़ें:

 func textViewDidEndEditing (textView: UITextView) { if myTxtView.text.isEmpty || myTxtView.text == "" { myTxtView.textColor = .lightGray myTxtView.text = "Type your thoughts here..." } } 

अन्य सुविधाओं को आपको नकली बनाने की आवश्यकता हो सकती है:

UITextField अक्सर प्रत्येक अक्षर को कैपिटल करते हैं, आप उस फीचर को यूआईटीबलदृश्य में जोड़ सकते हैं:

 myTxtView.autocapitalizationType = .words 

UITextField आमतौर पर स्क्रॉल नहीं करते हैं:

 myTxtView.scrollEnabled = false 

हां, एक यूआईटीक्स्ट विव है जिसे आप ढूंढ रहे हैं। आपको कुछ चीजों से अलग तरह से सौदा करना होगा (जैसे कि वापसी की कुंजी), लेकिन आप इसे पाठ जोड़ सकते हैं, और यदि आप अंदर बहुत अधिक पाठ रखते हैं तो यह आपको ऊपर और नीचे स्क्रॉल करने की अनुमति देगा।

इस लिंक में डेटा दर्ज करने के लिए स्क्रीन बनाने की जानकारी है:

एक डाटा एंट्री स्क्रीन बनाएं

यदि आपके पास पाठ की 2 पंक्तियों के साथ एक UITextField होना चाहिए, तो एक विकल्प को यूआईएलएबल को पाठ की दूसरी पंक्ति के लिए UITextField के एक उपदृश्य के रूप में जोड़ना है। मेरे पास मेरे एप में एक यूआईटीईफ़ेस्ट फिल्ड है जो उपयोगकर्ताओं को अक्सर एहसास नहीं होता है कि टैपिंग के द्वारा संपादन योग्य है, और मैं कुछ छोटे उपशीर्षक पाठ जोड़ना चाहता हूं जो कि "संपादित करने के लिए टैप" को यूआईटीप्लेस्टफिल्ड में दिखाता है।

 CGFloat tapLlblHeight = 10; UILabel *tapEditLbl = [[UILabel alloc] initWithFrame:CGRectMake(20, textField.frame.size.height - tapLlblHeight - 2, 70, tapLlblHeight)]; tapEditLbl.backgroundColor = [UIColor clearColor]; tapEditLbl.textColor = [UIColor whiteColor]; tapEditLbl.text = @"Tap to Edit"; [textField addSubview:tapEditLbl]; 

UITextField के बजाय UITextView का उपयोग करें

उपरोक्त में h4xxr के उत्तर के लिए पूरक, UITextField की ऊंचाई को समायोजित करने का एक आसान तरीका विशेषता निरीक्षकों-> पाठ फ़ील्ड में स्क्वायर सीमा शैली का चयन करना है (डिफ़ॉल्ट रूप से, UITextfield की सीमा शैली अंडाकार है।)

संदर्भ: यहां ब्रायन ने उत्तर दिया: UITextField ऊँचाई कैसे सेट करें?

मेरे लिए काम करने वाला एक और विकल्प है:

उप-वर्ग UITextField और अधिलेखित:

 - (void)drawTextInRect:(CGRect)rect 

इस विधि में आप उदाहरण के लिए कर सकते हैं:

  NSDictionary *attributes = @{ NSFontAttributeName : self.font, NSForegroundColorAttributeName : self.textColor }; [self.text drawInRect:verticalAlignedRect withAttributes:attributes]; 

यह कोड पाठ के रूप में कई लाइनों के रूप में आवश्यक होगा यदि रीक्ट में पर्याप्त स्थान है। आप अपनी आवश्यकताओं के आधार पर किसी अन्य विशेषता को निर्दिष्ट कर सकते हैं।

प्रयोग नहीं करें:

 self.defaultTextAttributes 

जो एक पंक्ति पाठ प्रतिपादन को मजबूर करेगा