Подтверждение ввода в многоязычном приложении - PullRequest
0 голосов
/ 22 сентября 2010

Я работаю над приложением, которое будет поддерживать английский и арабский языки. Приложение принимает числовой ввод для использования. На арабском языке числовые символы отличаются! Итак, каков наилучший способ проверки числового ввода (сумма, процент, число) в такой ситуации?

Ответы [ 2 ]

0 голосов
/ 04 октября 2010

В итоге я использовал NSNumberFormatter для проверки правильности ввода вместо использования следующих методов:

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

ИЛИ

- (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 голосов
/ 22 сентября 2010

Если язык изменяется через панель системных настроек, ваша реализация по умолчанию для проверки должна работать. Эта статья может помочь.

...