textFieldDidBeginEditing wird vorzeitig aufgerufen

Ich habe eine Anwendung, in der ich nach oben scrollen muss, wenn die Tastatur angezeigt wird. Um die Tastaturgröße zu ermitteln, registriere ich dieUIKeyboardWillShowNotification Veranstaltung wie folgt:

   [[NSNotificationCenter defaultCenter]
     addObserver:self
     selector:@selector(keyboardWillShow:)
     name:UIKeyboardWillShowNotification
     object:self.view.window]

Das funktioniert, das Problem ist, es wird nach dem aufgerufentextFieldDidBeginEditing hieß. Daher kann ich die tatsächliche Tastaturgröße nicht ermitteln, sondern erst, wenn sich das Feld bereits im Bearbeitungsmodus befindet, was den gesamten Zweck der erstmaligen Registrierung dieses Ereignisses zunichte macht. Ich bin sicher, ich habe die angerufenUIKeyboardWillShowNotification und nicht dieUIKeyboardDidShowNotificationObwohl das Umschalten dieser beiden Methoden zu denselben Ergebnissen führt, wurde zuerst die Delegate-Methode und dann die Benachrichtigungsmethode aufgerufen. Irgendeine Idee, wie man das umdreht? Momentan codiere ich die Größe hart, was eine sehr schlechte Übung ist ...

Antworten auf die Frage(5)

Ihre Antwort auf die Frage