2012-05-15 84 views

回答

1

有有点一招这个的,你需要计算新的字符串是什么之前,你可以测试是否允许或拒绝的变化

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
    NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string]; 

    if ([newString length] > 15) { 
     return FALSE; 
    } else { 
     return TRUE; 
    } 
} 
0

您可以检查是否输入和计数字符

(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range  replacementString:(NSString *)string 
    { 
    if (range.length > 15) { 
     // delete 
    } 
    else 
    { 
     // add 
    } 
} 
-1
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
    if (textField.text.length >= 15) 
    { 
     return NO; //return NO to not change text 
    } 

return YES; 

} 
+0

它不会允许的字符删除一次15个字符已经达到。 –

0

使用方法

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
    if (([textField.text length] - range.length) == 15) { 
     return NO; 
    } 
    return YES; 
} 

希望它帮助。快乐编码:)

1

//它的大码但工作对我罚款

//把你的文本字段名称,而不是YourTextFieldName在这段代码

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

    { 

     if (textField==YourTextFieldName) 
     { 

     NSString *text = nil; 
     int MAX_LENGTH = 12; 

     text = YourTextFieldName.text; 
     if ([text length] <= 7) 
     { 
      NSString *separator = @"-"; 
      int seperatorInterval = 3; 
      NSString *originalString = [textField.text   stringByReplacingOccurrencesOfString:separator withString:@""]; 

      if (![originalString isEqualToString:@""] && ![string isEqualToString:@""]) 
      { 

       NSString *lastChar = [YourTextFieldName.text substringFromIndex:[YourTextFileName.text length] - 1]; 
       int modulus = [originalString length] % seperatorInterval; 

       if (![lastChar isEqualToString:separator] && modulus == 0) 
       { 
        YourTextFieldName.text = [YourTextFieldName.text stringByAppendingString:separator]; 
       } 
      } 
     } 
     if ([text length] > 7) 
     { 
      NSString *separator = @"-"; 
      int seperatorInterval = 6; 
      NSString *originalString = [textField.text stringByReplacingOccurrencesOfString:separator withString:@""]; 

      if (![originalString isEqualToString:@""] && ![string isEqualToString:@""]) 
      { 

       NSString *lastChar = [YourTextFieldName.text substringFromIndex:[YourTextFieldName.text length] - 1]; 
       int modulus = [originalString length] % seperatorInterval; 

       if (![lastChar isEqualToString:separator] && modulus == 0) 
       { 

        YourTextFieldName.text = [YourTextFieldName.text stringByAppendingString:separator]; 
       } 
      } 
     } 

      NSUInteger newLength = [textField.text length] + [string length] - range.length; 
     return (newLength > MAX_LENGTH) ? NO : YES; 
    } 
    return YES; 



    } 
相关问题