Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何针对另一个文本字段的值对文本字段应用验证?_Iphone_Uitextfield_Nsrange - Fatal编程技术网

Iphone 如何针对另一个文本字段的值对文本字段应用验证?

Iphone 如何针对另一个文本字段的值对文本字段应用验证?,iphone,uitextfield,nsrange,Iphone,Uitextfield,Nsrange,我想对文本字段应用验证。我有两个文本字段,当第二个文本字段值等于“AM”时,我只想输入0-11的值。如何针对另一个文本字段的值应用验证文本字段 提前感谢…从第二个文本字段中获取值,然后检查并验证 if([secTxtField.text isEqualToString:@"AM"]) { //do the validation for the first } 首先只检查这里的数字 - (BOOL)textField:(UITextField *)textField shouldCha

我想对文本字段应用验证。我有两个文本字段,当第二个文本字段值等于“AM”时,我只想输入0-11的值。如何针对另一个文本字段的值应用验证文本字段


提前感谢…

从第二个文本字段中获取值,然后检查并验证

if([secTxtField.text isEqualToString:@"AM"])
{
  //do the validation for the first
}
首先只检查这里的数字

   - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
            static NSCharacterSet *charSet = nil;
            if(!charSet) {
                charSet = [[[NSCharacterSet characterSetWithCharactersInString:@"0123456789"] invertedSet] retain];
            }
            NSRange location = [string rangeOfCharacterFromSet:charSet];
      if(!(location.location == NSNotFound))
    {
      if([secTxtField.text isEqualToString:@"AM"])
      {
          //get the first textField input
         //Conver to int
        //Check for less than 11 
        if (pass) 
        {
            return YES;
       }
       else
       {
          return NO;
       }
      }
    }
            return (location.location == NSNotFound);
}

可以通过在视图控制器中保留对两个文本字段的引用来实现设计

然而,如果使用
UIPickerView
从少于12个项目中进行选择,则更符合苹果的人机界面指南

这样试试

- (BOOL) textFieldShouldBeginEditing:(UITextField *)textField{

    if(textField==self.txt1 && [self.txt2.text isEqualToString:@"AM"]){

        [self.txt1 setKeyboardType:UIKeyboardTypeNumberPad];
    }
    return YES;
}
- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{

    if ([string isEqualToString:@""]) {
        return YES;
    }

    if(textField==self.txt1 && [self.txt2.text isEqualToString:@"AM"]){

        int no=[self.txt1.text intValue];
        NSLog(@"%d",no);
        int enteredno=[string intValue];
        int sum=no*10+enteredno;
        if (sum>11) {
            return NO;
        }

    }
    return YES;
}

这里txt1和txt2是第一个和第二个文本字段。将委托设置为两个文本字段

如何应用验证以及在何处应用验证?获取FirstTextField数据,将其转换为int并进行检查。或者检查字符串匹配模式并执行以下操作