Salut,
Argh, mais où sont mes NSFormatter ? Beuheuheu...
J'aimerais que l'utilisateur ne puisse rentrer que des nombres décimaux (avec virgule) dans un UITextField... Et je ne trouve pas !
UITextInputTraits est trop limité !
Une idée ? Une piste ?
+
Chacha
Réponses
Ben non... là c'est sur iPhone...
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
unichar c=[string characterAtIndex:0];
if(! isdigit(c)) {
return NO;
}
return YES;
}
la difficulté n'est pas d'utiliser un NSNumberFormatter (ça je sais faire), mais de l'attribuer à un UITextField... On dirait que ça n'est pas prévu, comme si les NSNumberFormatters ne pouvaient pas être employés dans l'interface de l'iPhone.
@Philippe49 : mon souci est moins de valider l'entrée que de proposer un clavier restreint aux seuls caractères 1234567890,.
Les UIKeyboardType ne sont aucunement configurables...
S'il n'y a pas moyen, tant pis, je validerai à la main.
+
Chacha
Oui, l'idéal serait que textField.keyboardType=UIKeyboardTypeNumberPad; présente la virgule, et tu n'as pas trouvé de possibilité de configurer le keyboard. Ils sont ch... pénibles pour ça.
En effet, on ne peut pas les lier aussi simplement aux éléments graphiques que dans le sdk Mac OSX.
D'autre part les types de claviers de saisie de l'iPhone ne sont pas configurables.
Tu peux toujours coder ton propre clavier pour n'afficher que les éléments de saisie valides mais c'est du taf. Sinon en sous classant la classe UITextView tu peux rajouter un attribut de type NSFormatter, les getter/setter qui vont bien, et puis redéfinir les méthodes d'affichage pour qu'elles affichent la saisie de l'utilisateur au bon format.
C'est ce que je craignais... bon, j'attends l'OS 2.3 alors :-)
Merci.
+
Chacha