[FIXED] Ausblenden der Tastatur, wenn die Löschtaste in UITextField gedrückt wird

Ausgabe

Gibt es eine Möglichkeit, die Tastatur auszublenden, wenn eine Löschtaste UITextFieldgedrückt wird?

Lösung

Ja, aber ich vermute, dass dies gegen die Apple Human Interface Guidelines verstoßen würde.

Fügen Sie dazu die folgende Methode zur Implementierungsdatei Ihres View-Controllers hinzu. Machen Sie dann den View-Controller zum Delegaten Ihres Textfelds.

- (BOOL) textFieldShouldClear:(UITextField *)textField{
    [textField resignFirstResponder];   
    return YES;
}

Der Nachteil dieses Ansatzes ist, dass Ihr Code chaotisch wird, wenn Sie jemals verhindern möchten, dass das Textfeld gelöscht wird. Stattdessen könnten Sie versuchen, eine benutzerdefinierte Methode zu definieren und sie dann mit der valueDidChangeMethode zu verbinden und auf einen leeren Wert zu prüfen.

-(IBAction)hideKeyboardFromTextField:(id)sender{
  //TODO: Check if the previous value was longer than one character to differentiate
  //between backspace and clear. 

  //check if the editing caused the box to be empty
  if([[sender value] isEqualToString:@""] || [sender value] == nil)
    [sender resignFirstResponder];
  }
}

Das Problem dabei ist, dass Sie nicht einfach zwischen einem Tippen auf die Schaltfläche „Löschen“ und einem Tippen auf die Schaltfläche „Löschen“ unterscheiden können, wenn sich ein Zeichen im UITextField befindet.

Wie ich am Anfang meiner Antwort sagte, ist dies von vornherein nicht ratsam und wie die Antworten hier gezeigt haben, ist es nicht so einfach umzusetzen. Ich denke nicht, dass es den Aufwand wert ist, wenn man bedenkt, dass dies schwierig ist und nicht zu einer optimalen Benutzererfahrung führt.


Beantwortet von –
Moshe


Antwort geprüft von –
Pedro (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like