我在uitableview行中使用多个uitextfield。

例如,用户可以在两个uitextfield中键入数字范围。

现在如何处理这些uitextfield中输入的值的某些验证?

例如,uitextfield1不应低于1,而uitextfield2不应高于100。

这是我设置文本字段仅具有数值的旧代码:

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

        NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:ACCEPTABLE_CHARECTERS] invertedSet];

        NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];

        return [string isEqualToString:filtered];

    return YES;
}


在我的cellForRowAtIndexPath中:

static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
UITextField * UTX1 = (UITextField *)[cell viewWithTag:1];
UITextField * UTX2 = (UITextField *)[cell viewWithTag:2];
UTX1.delegate = self;
UTX2.delegate = self;

最佳答案

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string  {
      // allow backspace
      if (!string.length)
      {
           return YES;
      }

      // allow digit 0 to 9
      if ([string intValue])
      {
            if(textfield.tag==1){ // First textfield
                 if([string intValue]<1){
                        return NO;
                 }
            }
            else if(textfield.tag==2){ // Second textfield
                 if([string intValue]>100){
                        return NO;
                 }
            }
            return YES;
      }
      return NO;
}


您可以根据需要更改值范围的条件以允许每个文本字段。

关于ios - 在uitableview中的多个UITextField上添加不同类型的验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26623242/

10-10 12:31