Domanda

Ho una semplice UIViewController e UISearchBar, quando i carichi vista voglio avere la barra di ricerca diventare il primo risponditore subito in modo che la tastiera sta mostrando e possono iniziare a digitare il loro interrogazione subito. Ho provato a farlo in viewWillAppear come qui di seguito, senza alcuna fortuna:

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

C'è un altro posto che io sia chiamando becomeFirstResponder sul UISearchBar o dovrei chiamando qualcosa di completamente diverso?

È stato utile?

Soluzione

Sposta questo per -viewDidAppear e dovrebbe andare bene. -becomeFirstResponder tira sulla tastiera (come si nota), e non si dovrebbe fare animazioni prima che tu sia sullo schermo. È possibile ottenere le interazioni strane.

Se non sta facendo nulla, allora quasi certamente productSearchBar è un IBOutlet e avete dimenticato di legare in realtà al UISearchBar in Interface Builder. Questo è il motivo # 1 per "non succede nulla" nell'interfaccia utente.

Si noti che non si dovrebbe essere accedendo tuoi ivars in questo modo; si dovrebbe farne una proprietà e si riferiscono solo ai self.productSearchBar. Apple ha finalmente pubblicato una corretta spiegazione di questo nella loro di pennino oggetti . Mai accedere ai Ivars al di fuori di una funzione di accesso o di -dealloc. Questa regola vi farà risparmiare molte ore di debugging.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top