NSNotification keyBoardWillShow und keyboardWillHide nicht genannt

Habe ich eine xib-Datei mit benutzerdefinierten anzeigen auf denen ich viele Textfelder Untersichten. Ich habe die Delegierten auf jeder der textfield-Instanz der Datei-Besitzer und erfolgreich in der Lage, texfield delegate-Methoden. Aber leider ist die Tastatur Benachrichtigung Methoden keyboardWillShow: und keyboardWillHide: nicht genannt, überhaupt.

Fügte ich Beobachter bei textfieldShouldBeginEditing und entfernt die Beobachter an textFieldDidEndEditing.

Hier ist der Ausschnitt aus meinem code:

Hinzufügen Beobachter

-(void) textFieldShouldBeginEditing : (UITextField *) textField{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
}

Entfernen Beobachter

-(void) textFieldDidEndEditing : (UITextField *) textField{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
}

//Methoden für die Benachrichtigung

- (void)keyboardWillShow:(NSNotification *)notification
{
NSLog(@"Here");
}

- (void)keyboardWillHide:(NSNotification *)notification
{
NSLog(@"There");
}

//Alle diese keyboardwillShow und keyboardWillHide ist nicht genannt.

Es wird großartig sein, wenn mir jemand helfen kann, herauszufinden, das Problem mit meinem code, oder jede darunterliegende Problem, was ich möglicherweise fehlen.

  • Es ist möglich, dass die Tastatur zeigt vor textFieldDidBeginEditing: aufgerufen wird, die bewirkt, dass keyboardWillShow nie aufgerufen werden. Starten Sie die Beobachtung früher und sehen, ob das etwas ändert
InformationsquelleAutor RoshUn | 2017-02-03



One Reply
  1. 1

    Den Sie hinzufügen, ein Beobachter, wenn Sie zeigen die Tastatur, indem Sie Bearbeiten textView. Es wird nicht anrufen, weil die Tastatur ist ja bereits gezeigt. Sie sollten die Beobachter auf Ihre viewWillAppear und entfernen viewWillDisappear Methoden.

    • Ich fügte hinzu, Beobachter auf keyboardShouldBeginEditing. Sorry, ich sagte didBeginEditing. Auch, es ist nur eine xib-Datei und den viewcontroller erzeugt andere Ansichten basierend auf xib-Namen und gleichen xib kann nicht instanziiert werden, in der Eltern viewcontroller
    • Fügen Sie es, bevor Sie in viewWillAppear.
    • Ich habe nur awakeFromNib-Methode
    • Yup, es zu tun. Aber es ist besser, fügen Sie diese Beobachter in einem viewController, wo Sie mit Ihrem xib auf diese beiden lifecycle-Methoden.
    • Ich werde versuchen, Sie zu implementieren, in awakeFromNib und lassen Sie wissen, ob es funktioniert. Dank
    • Leider, hinzufügen Beobachter bei awakeFromNib hat nicht funktioniert. 🙁
    • Die Sie Hinzugefügt haben, wird [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; immer noch ohne Erfolg? Dann schlage ich vor, die Umsetzung dieser zwei Beobachter, wie ich sagte, im controller, wo Sie mit Ihrer xib.
    • Yep.-(void)awakeFromNib{ [super awakeFromNib]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; }
    • Also ich schlage vor, Notwasserung diese textView delegate-Methoden und Durchführung der Beobachter-controller.
    • Leider kann ich nicht tun, dass in den viewcontroller, da der viewcontroller erzeugt verschiedene anzeigen auf der Grundlage der Aufzählung der Wert, den es erhält, und die meisten Ansichten haben Ihre eigenen NSNotificationCenter, so dass dieser Ansatz nicht geeignet ist für mich. Ich habe, um herauszufinden, die NSNotification. Bitte informieren Sie mich, wenn Sie herausfinden konnte, die Fehler für mich. Dank
    • Verdammt, das ist schwierig ok ich werde darüber nachdenken.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.