2009-05-20 16 views
6

के साथ समस्या यह संभवतः एक आसान काम है, लेकिन मैं इसे समझ नहीं सकता - मैं टेक्स्टव्यू पर संपादन कैसे समाप्त करूं? मैं गायब होने के लिए कीबोर्ड कैसे प्राप्त कर सकता हूं? या क्या इसे बाहर जाने के लिए मुझे इसके बाहर क्लिक करना होगा?आईफोन - UITextView

उत्तर

10

सबसे पहले, एक (ईमानदार होने के लिए) इस तरह के काफी सरल सवाल से मुझे आश्चर्य होता है कि क्या आपने दस्तावेज़ पढ़ने या इंटरनेट पर खोज करने की कोशिश की है।

"एप्पल प्रलेखन UITextView" के लिए खोज क्लास प्रलेखन में आपको this link देता है। इसी प्रकार, here is UITextViewDelegate के लिए प्रलेखन।

"UITextView सरल उदाहरण" के लिए खोजना आपको यह useful example देता है।

"यूआईटीएक्स्टव्यू डिलीवरी कीबोर्ड" के लिए खोज रहे हैं, पहली हिट answer your question exactly पर लगती है। (हालांकि वह रिटर्न कुंजी पर कीबोर्ड को खारिज कर देता है, जो कि आप जो चाहते हैं वह नहीं हो सकता है।) (संपादित करें - यह आपकी दूसरी टिप्पणी से लगता है कि यह वही है जो आप चाहते हैं।)

पीएस उपरोक्त लोग सही हैं, अगर थोड़ा सा (समझदारी से)। आपको UITextViewDelegate को लागू करने की आवश्यकता है। उस प्रतिनिधि में, यदि आप रिटर्न कुंजी पर कीबोर्ड को छिपाना चाहते हैं, तो चेंजटेक्स्टइनरेंज को कार्यान्वित करें, @ "\ n" को देखें और अगर आपको यह मिलता है तो पहले उत्तरदाता को इस्तीफा दें। वैकल्पिक रूप से, अपने यूआई में "पूर्ण संपादन" बटन जोड़ें, और उपयोगकर्ता इसे दबाए जाने पर पहले उत्तरदाता से इस्तीफा दे।

+0

पाठ फ़ील्ड नहीं हां, google.com -> http://iphonedevelopertips.com/cocoa/how-to- खारिज-द-कीबोर्ड-कब-उपयोग-ए-uitextview.html – oberbaum

+3

SO "काफी सरल प्रश्न" से भरा है और इसके लिए ईमानदारी का शुक्र है! –

2

बहुत आसान:

[myTextField resignFirstResponder]; 

चाल करेंगे।

+3

TextView कहते हैं, नहीं – Unreality

0
[yourTextField resignFirstResponder]; 

कुंजीपटल गायब हो जाएगा और संपादन समाप्त हो जाएगा।

+3

TextView पाठ फ़ील्ड के लिए सुनिश्चित किया जाना चाहिए, – Unreality

2

संपादन को समाप्त करने का एक तरीका, टेक्स्ट व्यू के बाहर टैप करना पूरी तरह से छोटा नहीं है। अन्य पाठ दृश्य या पाठ फ़ील्ड का चयन या सक्रिय करने के लिए एक नेविगेशन नियंत्रण को गति प्रदान करेगा ...

- (void)textViewDidEndEditing:(UITextView *)textView 

... जो कुछ भी वस्तु पर आप TextView के प्रतिनिधि के रूप में नामित किया है। आप इसे कॉल करके खुद को ट्रिगर कर सकते हैं ...

- (BOOL)endEditing:(BOOL)force 

... इस दृश्य पर जिसमें आपका टेक्स्ट फ़ील्ड है।

मान लीजिए कि मेरे पास UITableViewCell (UITable के अंदर) के अंदर UITextView है। मैं तालिका को टैप करके संपादन को समाप्त करना चाहता हूं। मैं यह कर सकता था:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapTable)]; 
    [[self tableView] addGestureRecognizer:tapRecognizer]; 
    [tapRecognizer release]; 
} 

- (void)didTapTable 
{ 
    [[self tableView] endEditing:YES]; 
} 

जब भी मैं अपनी तालिका टैप करता हूं, तो मैं संपादन समाप्त करता हूं। और, जैसा कि अन्य लोगों ने कहा, textViewDidEndEditing में मैं [textView resignFirstResponder];

+0

मुझे लगता है कि एंड एडिटिंग टेक्स्ट इवेंट पर इस्तीफा देगी फर्स्ट रेस्पॉन्डर। EndEditing के बारे में अच्छी बात यह है कि आपको यह नहीं पता है कि वर्तमान में कौन सा टेक्स्ट व्यू संपादित किया जा रहा है। endEditing इसे आपके लिए ढूंढेगा और कीबोर्ड बंद कर देगा। दस्तावेजों से। "यह विधि वर्तमान दृश्य और पाठ क्षेत्र के लिए इसके सबव्यू पदानुक्रम को देखती है जो वर्तमान में पहला उत्तरदाता है।यदि यह एक पाता है, तो यह पूछता है कि टेक्स्ट फ़ील्ड को पहले उत्तरदाता के रूप में इस्तीफा देना है। यदि बल पैरामीटर YES पर सेट है, तो टेक्स्ट फ़ील्ड कभी भी नहीं पूछा जाता है; इसे इस्तीफा देने के लिए मजबूर किया जाता है। " – JScarry