2009-05-14 10 views
6

की didEndOnExit घटना के लिए एक विधि असाइन करें ऑब्जेक्ट की didEndOnExit ईवेंट में प्रोग्रामेटिक रूप से एक विधि (पर्यवेक्षक?) कैसे असाइन करें?UITextField

आईबी में ऐसा करना काफी आसान है लेकिन मैं यह नहीं समझ सकता कि कोड में इसे कैसे किया जाए।

उत्तर

30

मैं सिर्फ यह सोचा बाहर ...

[mytextField addTarget:self 
     action:@selector(methodToFire:) 
     forControlEvents:UIControlEventEditingDidEndOnExit]; 
4

आपके विचार नियंत्रक में निम्न विधि को लागू:

- (void)textFieldDidEndEditing:(UITextField *)textField{ 

//do stuff 

} 

मत भूलना viewDidLoad में प्रतिनिधि या प्रारंभकर्ता स्थापित करने के लिए:

myTextField.delegate = self; 
+0

यह काम नहीं करता ... –

+0

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

+0

आपने जो पोस्ट किया है वह शायद सही है, मुझे नहीं पता। हालांकि ऊपर पोस्ट किया गया कोड अधिक सुरुचिपूर्ण है और जो कुछ मैं ढूंढ रहा था उसे पूरा करता है। –

1

किसी अन्य टेक्स्टफील्ड को बनाने के लिए इस लक्ष्य का उपयोग करने पर विचार करने वाले किसी भी व्यक्ति के लिए फर्स्ट रेस्पॉन्डर 'अगला' बटन विकल्प जो आपको लगता है कि टेक्स्टफिल्ड्स के माध्यम से आप 'टैबबिंग' कर रहे हैं, मैं इस तरह कोड के साथ textFieldShouldReturn का उपयोग करने की सलाह दूंगा। मैं आपको बता दूँ यह इतनी अच्छी तरह से आप आप एक गेंडा सवारी कर रहे हैं की तरह महसूस होगा काम करता है:

-(BOOL)textFieldShouldReturn:(UITextField *)textField{ 
    [textField resignFirstResponder]; 

    if([textField isEqual:_textField1]){ 
     [_textField2 becomeFirstResponder]; 
     return NO; 
    }else if([textField isEqual:_textField2]){ 
     [_textField3 becomeFirstResponder]; 
     return NO; 
    } 

    return YES; 
}