2011-12-29 10 views
9

मेरे पास UIViewUITextView और UITextField एक सबव्यू के रूप में है। मैं कीबोर्ड को स्वचालित रूप से textFieldShouldReturn कॉल पर दिखाना चाहता हूं।UITextView बन गया है FirstPesponsder काम नहीं कर रहा है

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    [textField resignFirstResponder]; 
    [textView becomeFirstResponder]; 
    return YES; 
} 

लेकिन यह काम नहीं करता और किसी कारण से, यह पाठ ध्यान में रखते हुए अगली पंक्ति पर कर्सर के साथ कुंजीपटल प्रदर्शित करता है। मैंने टेक्स्टव्यू में टेक्स्ट शून्य सेट करने का प्रयास किया लेकिन यह स्वचालित रूप से textDidChange विधि और कर्सर को किसी भी पाठ के बिना नई लाइन पर ले जाता है।

enter image description here

यह उसी तकनीक का एक UITextField के लिए सही ढंग से काम करता है और यह भी आईओएस 4.3 में इसे ठीक करने के iOS 5.0 लेकिन कैसे के साथ ठीक काम करता है। अगर आपके पास कोई विकल्प भी है तो मुझे बताएं।

मैं कुछ स्पष्ट याद आ रही है?

+0

क्या आप अधिक कोड दिखा सकते हैं? अगर आप स्टोरीबोर्ड का उपयोग करते हैं तो मेरा मानना ​​है कि यूआईटीएक्स्टव्यू का चयन करने का एक तरीका है जब दृश्य पहली बार आता है, जो कीबोर्ड को लाएगा ताकि आपको इसे मैन्युअल रूप से करने की आवश्यकता न हो। –

+0

काइनेटिक की टिप्पणी में जोड़ने के लिए, स्टोरीबोर्ड परियोजनाएं केवल आईओएस 5 के लिए ठीक से संकलित करती हैं ताकि यह एक मुद्दा हो। यदि नहीं, तो शायद आप अपने UITextView प्रतिनिधि तरीकों में कुछ फंकी कर रहे हैं? अधिक विशिष्ट सहायता के लिए अधिक कोड पोस्ट करें क्योंकि आपके द्वारा पोस्ट किया गया ब्लॉक समस्या नहीं प्रतीत होता है। – Keller

उत्तर

31

ही runloop भीतर इस्तीफा दे दिया है और पहले प्रत्युत्तर बनने के साथ iOS की एक ज्ञात बग नहीं है। निम्नलिखित

[textField resignFirstResponder]; 
[textView performSelector:@selector(becomeFirstResponder) withObject:nil afterDelay:0.0]; 
+1

वैसे, मुझे नहीं लगता कि आपको पहले इस्तीफा देना होगा फर्स्ट रेस्पॉन्डर, मुझे लगता है कि फर्स्ट रेस्पॉन्डर पर्याप्त है। – juanjo

+0

धन्यवाद, यह मेरे लिए काम किया! – c0d3Junk13

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