2012-04-15 77 views
0

我想限制三个UItextfield只有一个数字,我使用这个代码但它可以工作。如何限制UItextfield

的代码:

- (BOOL)textField:(UITextField *)numeroIngresa1 
shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
if (range.location >= 1) 
return NO; // return NO to not change text 
return YES; 
} 

回答

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

    NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; 
    [numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle]; 

    NSNumber* candidateNumber; 

    NSString* candidateString = [textField.text stringByReplacingCharactersInRange:range withString:string]; 

    range = NSMakeRange(0, [candidateString length]); 

    [numberFormatter getObjectValue:&candidateNumber forString:candidateString range:&range error:nil]; 

    if (([candidateString length] > 0) && (candidateNumber == nil || range.length < [candidateString length])) { 

     return NO; 
    } 
    else 
    { 
     return YES; 
    } 
} 

源:Iphone UITextField only integer