2012-03-06 17 views
10

Ho una vista in XIB in cui ho utilizzato diversi campi di testo. Diciamo che il primo campo di testo diventa il primo risponditore non appena la vista viene caricata nella finestra. Se premo il tasto Tab nella tastiera della mia macchina per passare al prossimo campo di testo, a parte il campo di testo immediato, anche tutti gli altri campi di testo diventano il primo risponditore e il campo di testo inizia a modificare il delegato viene richiamato per tutti i campi di testo. Quale potrebbe essere il problema? Ciò si verificherà non solo nel simulatore quando usiamo la tastiera della macchina anche quando usiamo la tastiera bluetooth per un dispositivo iOS.TextField becomeFirstResponder Problema per l'azione del tasto Tab (Tastiera)

+1

Ho appena incontrato lo stesso problema. textFieldShouldBeginIl metodo dei delegati può essere utilizzato per impedire la modifica, ma in seguito la domanda è come trovare se textFieldShouldBeginEditing è stato chiamato a causa di una chiave di tabulazione o di un campo di testo. – Vladimir

+0

Ho anche incontrato lo stesso problema ... Seriamente perché apple non regsiter il tasto tab press all'interno del campo di testo: shouldChangeCharactersInRange: replacementString: – HurkNburkS

risposta

2

Premendo il tasto tab => navigazione al campo di testo successivo rispetto all'erarchia dei campi di testo nella vista.

Quando si preme tab - textfieldshouldbeginediting verrà chiamato tutte le volte che si campi di testo, ovvero 5 campi di testo => una pressione tasto tab, tutte le 5 istanze verranno chiamate. Quando si preme tab - textfielddidbeginediting verrà chiamato una sola volta rispetto all'istanza del nuovo campo di testo - Quindi qualsiasi logica per il campo di testo è meglio che sia nel metodo delegato textfielddidbeginediting.

Queste sono le caratteristiche predefinite dei metodi delegati e non un problema.

Problemi correlati