आप देखेंगे कि "textFieldShouldReturn" विधि पाठ क्षेत्र की वस्तु प्रदान करती है जिसने Done कुंजी को हिट किया है। यदि आप TAG सेट करते हैं तो आप उस टेक्स्ट फ़ील्ड पर स्विच कर सकते हैं। या आप इसके निर्माता द्वारा संग्रहीत कुछ सदस्य मूल्य के साथ ऑब्जेक्ट के पॉइंटर को ट्रैक और तुलना कर सकते हैं।
मेरा दृष्टिकोण एक आत्म-अध्ययन के लिए इस तरह है:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
NSLog(@"%s", __FUNCTION__);
bool fDidResign = [textField resignFirstResponder];
NSLog(@"%s: did %resign the keyboard", __FUNCTION__, fDidResign ? @"" : @"not ");
return fDidResign;
}
इस बीच, मैंने "सत्यापन" परीक्षण रखा, जो इस्तीफे से इनकार करता है। यह केवल चित्रण के लिए है, इसलिए यदि उपयोगकर्ता कोई प्रकार नहीं! क्षेत्र में, यह खारिज नहीं करेगा। व्यवहार वैसा ही था जैसा मैं चाहता था, लेकिन उत्पादन का क्रम वैसा नहीं था जैसा मुझे उम्मीद थी।
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
NSLog(@"%s", __FUNCTION__);
if( [[textField text] isEqualToString:@"NO!"] ) {
NSLog(@"%@", textField.text);
return NO;
} else {
return YES;
}
}
स्वीकृति के बाद इस इनकार के लिए मेरा NSLog आउटपुट है। आप देखेंगे कि मैं इस्तीफे का परिणाम वापस कर रहा हूं, लेकिन मुझे उम्मीद थी कि कॉल करने के लिए वापस रिपोर्ट करने के लिए मेरे पास FALSE लौटने के लिए ?! उसके अलावा, यह आवश्यक व्यवहार है।
13.313 स्टडीकेबड [109: 207] - [स्टडीकेबडव्यूकंट्रोलर टेक्स्टफिल्डशोल्डरऑर्न:]
13.320 स्टडीकेबड [109: 207] - [स्टडीकेबडव्यूकंट्रोलर टेक्स्टफिल्डशोल्डएंडराइटिंग:]
13.327 स्टडीकेबड [109: 207] नहीं!
13.333 StudyKbd [109: 207] - [StudyKbdViewController textFieldShouldReturn:]: ने कीबोर्ड को इस्तीफा दिया
59.891 StudyKbd [109: 207] - [StudyKbdViewController textFieldShouldRodurn:]]
59.897 StudyKbd [109: 207] - [StudyKbdViewController textFieldShouldEndEditing:]
59.917 स्टडीकेबड [109: 207] - [स्टडीकेबडव्यूकंट्रोलर कियाएडिटेक्स]: नहीं।
59.928 StudyKbd [109: 207] - [StudyKbdViewController textFieldShouldReturn:]: ने कीबोर्ड को इस्तीफा दिया