Frage

Ich habe eine einfache UIViewController und UISearchBar, wenn die Ansicht Lasten ich die Suchleiste haben, wollen die Ersthelfer werden sofort, so dass die Tastatur angezeigt wird, und sie können ihre Anfrage sofort die Eingabe beginnen. Ich habe versucht, es in viewWillAppear wie unten ohne Glück zu tun:

- (void)viewWillAppear:(BOOL)animated
{
    [productSearchBar becomeFirstResponder];
    [super viewWillAppear:animated];
}

Gibt es einen anderen Ort, dass ich becomeFirstResponder auf der UISearchBar anrufen oder sollte ich etwas ganz anderes anrufen?

War es hilfreich?

Lösung

Bewegen Sie dies -viewDidAppear und es sollte in Ordnung sein. -becomeFirstResponder zieht die Tastatur nach oben (wie Sie beachten), und Sie sollten nicht tun Animationen, bevor Sie sind dem Bildschirm. Sie können seltsame Interaktionen erhalten.

Wenn es gar nichts tut, dann mit ziemlicher Sicherheit productSearchBar ist ein IBOutlet und Sie haben tatsächlich vergessen, um es an die UISearchBar im Interface Builder zu binden. Dies ist die Nummer 1 der Grund für in UI „nichts passiert“.

Beachten Sie, dass Sie sollten nicht Ihre ivars auf diese Weise zugreifen; Sie sollte es eine Eigenschaft machen und nur auf self.productSearchBar beziehen. Apple hat geschrieben endlich eine richtige Erklärung dafür in ihrem Memory Management von Nib Objekte . Nie Zugriff auf Ihre ivars außerhalb eines Accessor oder -dealloc. Diese Regel werden Sie viele Stunden Debuggen speichern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top