2012-01-05 5 views
2

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

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

+0

Пожалуйста, проверьте это, http://stackoverflow.com/questions/276382/what-is-the-best-way-to-enter-numeric-values-with-decimal-points – AAV

ответ

3

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

- (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.