2012-03-12 13 views
7

मैं EntryElement subclassed और जैसे GetCell विधि में UILineBreakMode निर्धारित किया है:क्या EntryElement MonoTouch.Dialog पर multiline हो सकता है?

public class EntryElementEnhanced : EntryElement, IElementSizing 
{ 
    public EntryElementEnhanced(string caption, string placeholder, string value) : base (caption, placeholder, value) {} 


    public float GetHeight(UITableView view, NSIndexPath indexPath) 
    { 
     return 100.0f; //arbitrary number just for testing 
    } 

    public override UITableViewCell GetCell (UITableView tv) 
    { 
     var cell = base.GetCell (tv); 
     cell.TextLabel.LineBreakMode = UILineBreakMode.WordWrap; 
     cell.TextLabel.Lines = 0; 


     return cell; 
    } 
} 

यह पाठ सेल शब्द-लपेट में प्रवेश हो जाता है कि बनाने के लिए प्रतीत नहीं होता। क्या मुझे इसे कहीं और स्थापित करना चाहिए?

यदि कोई बेहतर दृष्टिकोण जानता है, तो मैं उच्च स्तर पर पूरा करने की कोशिश कर रहा हूं, क्या मैं मोनो टच में एक यूआईटीएक्स्टएरिया के बराबर बनाना चाहता हूं। डायलॉग।

उत्तर

5

EntryElement एक UITextField जो एक एक लाइन only नियंत्रण है बनाता है।

यदि आपको कई लाइनों की आवश्यकता है तो मैं आपको अपना खुद का Element बनाने का सुझाव देता हूं, उदा। MultilineEntryElement, और इसे आंतरिक रूप से UITextView का उपयोग करें।

आप EntryElement से कॉपी-पेस्टिंग कोड द्वारा या UIViewElement (या दोनों का थोड़ा) से विरासत में ऐसा कर सकते हैं।

+0

यह मेरे लिए प्रवेश तत्व से कोड कॉपी करने के लिए काम करना प्रतीत होता था। एकमात्र मुद्दा जो मैं अब देखता हूं वह है कि 'EntryElement'' से 'GetCell' विधि में, 'प्रविष्टि .ShouldEndEditing + = प्रतिनिधि' संदर्भ 'root.Sections' को संदर्भित करने का प्रयास करता है। यह एक आंतरिक सूची है जिसे मैं अपने सबक्लास में एक्सेस नहीं कर सकता। कामकाज के लिए कोई विचार? – valdetero

4

मेरे एप्लिकेशन में https://gist.github.com/315408

पर एक multilineEntryElement कोड टुकड़ा है यह थोड़ा अजीब लग रहा है, लेकिन यह काम करता है।

2

मैं https://gist.github.com/4080025

वर्क्स में UIViewElement उपवर्गीकरण बहुत अच्छी तरह से एक MultilineEntryElement बनाया है और एक प्लेसहोल्डर संभालती है। आपको इसे अपनी विशिष्ट चौड़ाई के लिए अपडेट करना होगा।

+0

'फ्लोट कंटेनरविड्थ = यूआईस्क्रीन। मेनस्क्रीन.बाउंड्स। विथथ; ' – BRogers

2

मैं अपनी टोपी अंगूठी में फेंक दूंगा। मैंने वहां कुछ मल्टीलाइन प्रविष्टि तत्वों को देखा, और उनमें सभी के पास लेआउट मुद्दे थे। लेआउट मुद्दों को हल करने और अभिविन्यास परिवर्तनों को संभालने के लिए मैंने इसे https://gist.github.com/akcoder/5723722 लिखा था। यह आईफोन और आईपैड के सभी संस्करणों पर काम करना चाहिए।

+0

आपको FindControlOfType को लागू करना होगा जो कि गिस्ट में शामिल नहीं है। साथ ही, यह एक कैप्शन का समर्थन नहीं करता है, या विस्तृत पक्ष पर एक तत्व के रूप में अच्छा दिखता है जो एक अलग दृश्य (बहुत चौड़ा) है। यह समूहबद्ध अनुभाग में भी अच्छा नहीं दिख रहा है, क्योंकि पाठ दृश्य गोलाकार है (पृष्ठभूमि स्पष्ट = सत्य) और प्लेसहोल्डर लेबल पृष्ठभूमि स्पष्ट नहीं है। हालांकि साझा करने के लिए धन्यवाद! – therealjohn

+0

FindControlOfType टुकड़ा शामिल करने के लिए भूलने के लिए खेद है। जब मैंने कोड का परीक्षण किया तो यह समूहबद्ध और सादा दृश्य दोनों में ठीक दिखता था। मुझे यकीन नहीं है कि क्या हुआ। मैंने अपनी पिछली स्थिति छोड़ी है इसलिए मुझे उस कोड तक पहुंच नहीं है इसलिए मैं FindControlOfType कोड के साथ गिस्ट को अपडेट नहीं कर पाऊंगा :( –