2010-09-22 3 views
0

Je travaille sur une application qui supportera les langages anglais et arabe. L'application prend une entrée numérique à utiliser. En langue arabe, les caractères numériques sont différents! Alors, quelle est la meilleure façon de valider une entrée numérique (quantité, pourcentage, nombre) dans une telle situation?Validation de l'entrée dans une application multilingue

Répondre

0

Je fini par utiliser NSNumberFormatter pour vérifier la validité de l'entrée, au lieu d'utiliser les méthodes suivantes:

+ (BOOL)validateNumeric:(NSString *)numericString { 
    NSString *regexExpression = @"^[-+]?\\d{0,9}$"; 
    NSPredicate *matchTextPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regexExpression]; 
    return [matchTextPredicate evaluateWithObject:numericString]; 
} 

OU

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 

    switch (fieldValidationType) { 
     case kValidationTypeAmount: { 
       NSCharacterSet *unacceptedInput = nil; 
       unacceptedInput = [[NSCharacterSet characterSetWithCharactersInString:CHARACTERS_AMOUNT] invertedSet];  
       if ([[self componentsSeparatedByCharactersInSet:unacceptedInput] count] > 1) 
        return NO; 
       else 
        return YES; 

     } 

     default: 
      return YES; 
    } 

    return YES; 
} 
0

Si la langue est modifiée via le panneau de préférences système, votre implémentation par défaut pour la validation devrait fonctionner. Ce article pourrait aider.

Questions connexes