Domanda


Ho un UITextField e ho bisogno di consentire solo numeri, virgola o punto di scrittura in questo campo.
Come posso verificare se questa stringa contiene un carattere al posto di questi sopra e come posso sostituire / cancellarli?

Il mio campo memorizzerà un costo e ho bisogno solo i numeri, virgole o punti ...

Qualcuno può aiutarmi?
Grazie!

È stato utile?

Soluzione

È possibile utilizzare il metodo -textFieldDidEndEditing: dal protocollo UITextFieldDelegate. Questo metodo viene chiamato ogni volta che un campo di testo rassegna lo stato del primo responder (cioè le estremità modifica). Questa è l'occasione per verificare la stringa immessa. Se si desidera eseguire una verifica dopo ogni personaggio che è stato inserito, l'uso -textField:shouldChangeCharactersInRange:replacementString: come donkim suggerisce.

Altri suggerimenti

Per il campo di testo, è possibile utilizzare la UITextFieldDelegate e implementare il metodo textField:shouldChangeCharactersInRange:replacementString:. Secondo la documentazione, "il campo di testo chiama questo metodo ogni volta l'utente digita un nuovo carattere nel campo di testo o si cancella un carattere esistente". Nel metodo, si dovrebbe fare un controllo per tutti i caratteri non numerici e rimuoverli.

Invece di controllare la stringa Perchè non si assegna il valore della tastiera del campo di testo come NumberPad. In modo che l'utente non sarà in grado di digitare una stringa.

È possibile farlo attraverso il monitoraggio input dell'utente nel campo e automaticamente la rimozione di caratteri non corrispondenti. Creare un metodo IBAction:

- (IBAction)validateEntry:(id)sender;

poi collegarlo al Modifica Modificato evento del campo di testo. Il metodo verrà chiamato ogni volta che il testo nel campo cambia, sia dal digitazione dell'utente o da parte dell'utente incollare testo in.

All'interno del metodo si può esaminare il testo e rimuovere i caratteri offendere o, più gentilmente, aggiornare un UILabel che indica all'utente che hanno inseriti caratteri non validi e disattivare i bottoni di invio finché non è risolto.

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