2012-04-15 71 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