आईओएस 8 के बाद से, एक रूप में UITextFields बहुत अजीब व्यवहार करते हैं। यदि मैं किसी अन्य टेक्स्ट फ़ील्ड पर क्लिक करता हूं या कीबोर्ड पर टैब दबाता हूं, तो दर्ज टेक्स्ट ऊपर की ओर एनिमेट करता है और फिर तेज़ी से फिर से दिखाई देता है। यह देखने के बाद हर बार होता है, और हर अब और उसके बाद।इस्तीफाफिल्ड इस्तीफा देने पर एनिमेटिंग क्यों है फर्स्ट रेस्पॉन्डर?
यह इस तरह दिखता है:
#pragma mark - <UITextFieldDelegate>
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
if (textField == self.passwordTextField) {
[self loginButtonClicked:nil];
} else if (textField == self.emailTextField) {
[self.passwordTextField becomeFirstResponder];
}
return YES;
}
संपादित करें:
ऐसा लगता है कि इस मुद्दे की तरह अपने कीबोर्ड श्रोताओं के कारण होता है:
मेरे कोड इस तरह दिखता है
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
- (void)keyboardWillHide:(NSNotification *)sender
{
self.loginBoxBottomLayoutConstraint.constant = 0;
[self.view layoutIfNeeded];
}
- (void)keyboardWillShow:(NSNotification *)sender
{
CGRect frame = [sender.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];
CGRect newFrame = [self.view convertRect:frame fromView:[[UIApplication sharedApplication] delegate].window];
self.loginBoxBottomLayoutConstraint.constant = CGRectGetHeight(newFrame);
[self.view layoutIfNeeded];
}
इसका मेरे लिए ठीक काम करता है के रूप में किया जाएगा। क्या आप UITextField के कुछ तृतीय पक्ष उप वर्ग का उपयोग कर रहे हैं? –
नहीं, मैं नहीं करता हूं। यह एक सादा 'UITextField' है, और मैं कोई तीसरी पार्टी लाइब्रेरी या जो कुछ भी उपयोग नहीं करता हूं। – gklka
क्या आप सिम्युलेटर पर जांच कर रहे हैं? यदि हाँ आप बाहरी कीबोर्ड का उपयोग कर रहे हैं? –