Barra di ricerca delegato - differenza tra searchBarShouldBeginEditing / searchBarTextDidBeginEditing?
-
20-09-2019 - |
Domanda
Qual è la differenza tra loro? Nella mia sperimentazione, sembrano ottenere chiamato durante la stessa azione - una volta che l'utente tocca la barra di ricerca per visualizzare la tastiera. Questo nonostante l'utente non ha modificato il testo vero e proprio ancora. Che sembra chiamare Searchbar: textDidChange. Ma che viene chiamato per ogni cambiamento, non solo una volta all'inizio. Il che significa che devo scrivere più codice per duplicare come barra di ricerca si comporta in Google Maps.
OK, in modo che si è rivelato più nel sfogo - ma forse mi manca qualcosa. Ci sono casi in cui searchBarShouldBeginEditing è chiamato, ma non searchBarTextDidBeginEditing - o viceversa
?Soluzione
Qualsiasi messaggio con "dovrebbe" nel nome è tenuto a restituire un valore booleano. Se questo è falso, allora, in questo caso, la modifica non è iniziata, e la barra di ricerca non si becomeFirstResponder (vale a dire, l'utente tocca su di esso, ma nessuna tastiera appare per la modifica).