2013-04-06 20 views
7

मेरे पास तीन टेक्स्ट फ़ील्ड हैं और मैं कर्सर को अगले स्थान पर ले जाने में सक्षम होना चाहता हूं। जब अंतिम व्यक्ति तक पहुंच जाता है, तो कीबोर्ड खारिज कर देता है। लेकिन मेरे लिए कुछ भी काम नहीं करता है ... यहां मेरे पास एक उदाहरण है। हालांकि, कुछ भी नहीं चलता है, और कुछ भी नहीं होता जब मैं अगला बटन चुनता हूं।अगले टेक्स्ट फ़ील्ड में UITextField कर्सर को कैसे स्थानांतरित करें

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    if (textField == field1TextField) { 
     [textField resignFirstResponder]; 
     [field2TextField becomeFirstResponder]; 
    } 
    else if (textField == field2TextField) { 
     [textField resignFirstResponder]; 
     [field3TextField becomeFirstResponder]; 
    } 
    else if (textField == field3TextField) { 
     [textField resignFirstResponder]; 
    } 
    return YES; 
} 
+3

क्या आप वाकई टेक्स्ट फ़ील्ड प्रतिनिधि सही तरीके से सेट हैं? क्या इस विधि को बिल्कुल बुलाया जाता है? – stevex

+0

क्या इस विधि को बुलाया जाता है? यदि यह करता है .. और textField == field1TextField ब्लॉक को कॉल किया जाता है .. और field2TextField शून्य नहीं है .. तो ऐसा लगता है कि यह काम करना चाहिए – stevex

+0

एक प्रश्न के रूप में अपनी टिप्पणी बनाएं! मैं ऐसा करना भूल गया! मैं इसे चिह्नित करूँगा! –

उत्तर

3

उद्देश्य यह है कि इस विधि पाठ क्षेत्र के प्रतिनिधि के रूप में स्थापित किया जाना चाहिए करने के लिए बाध्य है। यह सत्यापित करने के लिए विधि में ब्रेकपॉइंट सेट करके इसे जांचें कि जब आपको लगता है कि इसे कहा जाता है।

यदि आप निब्स या स्टोरीबोर्ड का उपयोग कर रहे हैं, तो field... इंस्टेंस वैरिएबल आउटलेट्स को सही ढंग से जोड़ दिया जाना चाहिए। यदि वे प्रोग्रामेटिक रूप से बनाए जाते हैं, तो आपको यह सुनिश्चित करना चाहिए कि उनके पास ऑब्जेक्ट्स हैं। जब आप विधि के अंदर हों तो इन चर के मानों का निरीक्षण करके इसे सत्यापित करें।

becomeFirstResponder पर कॉल करने से पहले आपको अन्य नियंत्रणों पर resignFirstResponder पर कॉल करने की आवश्यकता नहीं है।

+0

आपके उत्तर के लिए धन्यवाद –

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