0

テキストフィールドにバリデーションを適用したい。2 つのテキスト フィールドがあり、2 番目のテキスト フィールドの値が「AM」の場合、0 ~ 11 の値のみを入力したいと考えています。別のテキスト フィールドの値に関して検証テキスト フィールドを適用するにはどうすればよいですか?

前もって感謝します...

4

3 に答える 3

0

ビューコントローラの両方のテキストフィールドへの参照を保持することで、デザインを実現できます。

UIPickerViewただし、 12未満の項目の数から選択するためにを使用する方が、Appleのヒューマンインターフェイスガイドラインにはるかに準拠しています。

于 2011-10-19T12:24:52.433 に答える
0

この方法を試してください

- (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 は 1 番目と 2 番目のテキストフィールドです。デリゲートを両方のテキストフィールドに設定します。

于 2011-10-19T12:43:53.367 に答える
0

2番目のテキストファイルから値を取得し、チェックしてから検証します

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);
}
于 2011-10-19T12:23:44.473 に答える