дважды проверьте NSString на один и тот же символ - PullRequest
2 голосов
/ 05 января 2012

Я хотел бы проверить поле UIText, чтобы убедиться, что оно не содержит второго десятичного знака. Как проверить строку NSSt на второе десятичное число?

На самом деле, я хотел бы представить поле uitext и иметь только цифровую клавиатуру и сделать это так, если пользователь нажимает 1 2 3 4 5 6 7 8 9, оно отображается как «$ 1 234 567,89», однако я сталкиваюсь с проблемами преобразование строки в значение с плавающей точкой и округление результата ... но если я смогу просто убедиться, что пользователь не набирает десятичные дроби 2, я тоже подойду.

1 Ответ

3 голосов
/ 06 января 2012

Лучший способ сделать это - запретить пользователю вводить второй десятичный знак.Используйте метод UITextFieldDelegate - textField: shouldChangeCharactersInRange: replaceString: следующим образом

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@"."];

    if ([string rangeOfCharacterFromSet:set].location != NSNotFound && [textField.text rangeOfCharacterFromSet:set].location != NSNotFound) {
        return NO;
    }

    return YES;
}

Теперь, если пользователь снова нажимает десятичную точку, он не будет добавлен в существующий UITextField.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...