2012-10-03 3 views
0

Например: Пользователь ввел 1234,56 в TextField.Как проверить формат десятичной дроби?

Я поставил этот NSNumberFormatter:

[numberFormatter setNumberStyle:NSNumberFormatterNoStyle]; 
[numberFormatter setMaximumIntegerDigits:5]; 
[numberFormatter setMaximumFractionDigits:1]; 

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

Благодаря Michael

+1

вы не сказали, какой текст поле это ... NSTextField или UITextField. Для случая iOS [возможно, этот связанный вопрос может помочь вам?] (Http://stackoverflow.com/questions/2412491/realtime-formatting-with-nsnumberformatter-in-a-uitextfield) –

ответ

1

Проверьте введенный номер с NumberFormatter так:

NSNumber * myNumber = [numberFormatter numberFromString:yourTextField.text]; 
if(myNumber) 
    //valid entered number 
else 
    //invalid entered number 

Вы должны использовать метод делегата UITextField для этого:

- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
    NSNumberFormatter *numberFormatter = [NSNumberFormatter alloc]init] 
    [numberFormatter setNumberStyle:NSNumberFormatterNoStyle]; 
    [numberFormatter setMaximumIntegerDigits:5]; 
    [numberFormatter setMaximumFractionDigits:1]; 
    NSNumber * myNumber = [numberFormatter numberFromString:string]; 
    [numberFormatter release]; 
    if(myNumber) 
    return YES; 
    else 
    return NO; 
} 
Смежные вопросы