0

画面に複数のテキストフィールドがあります。すべてのテキスト フィールドの検証という名前の JSON 応答を受け取りました。私が実際に望んでいるのは、ユーザーが通常の値の範囲外になるとすぐに、これらのテキスト フィールドの検証を設定できるようにすることです。そのためのロジックを用意しました:コードは次のとおりです

     - (BOOL)textFieldShouldEndEditing:(UITextField *)textField;{
// Here we are checking if TextField is not equals to blank then we are performing 
 validations here.
if (![textField.text isEqualToString:@""]) {
    NSLog(@"%@",textField.UID);
    NSPredicate * predicate = [NSPredicate predicateWithFormat:@"column_name == %@",
     textField.UID];
    NSArray * arr = [[NSArray alloc] init];
    arr = [arr_vitalvalidations filteredArrayUsingPredicate:predicate];
    for (int i=0; i < [arr count]; i++) {
        NSString * str_maxValue = [[arr objectAtIndex:i] valueForKey:@"max_value"];
        NSString * str_minValue = [[arr objectAtIndex:i] valueForKey:@"min_value"];
        if ([textField.text floatValue] > [str_maxValue floatValue] || [textField.text 
       floatValue] < [str_minValue floatValue]) {
            NSString * str_message = [[arr objectAtIndex:i]
        valueForKey:@"message_note"];
            str_message = [str_message stringByReplacingOccurrencesOfString:@"%1" 
        withString:str_minValue];
            str_message = [str_message stringByReplacingOccurrencesOfString:@"%2" 
        withString:str_maxValue];
            DisplayAlert(str_message)

            [textField becomeFirstResponder];
            return NO;

        }
    }

}
return YES;

}

このコードにより、実際には他のテキストフィールドが休止状態になります。これは、最初のテキストフィールドに正しい値を入力するまで、他のテキストフィールドに切り替えることができないためです。私も画面に他のコントロールを持っていますが、それらは正常に機能しています。たとえば、cm 単位の高さの値をフィートに変更するためのセグメント コントローラです。このセグメント コントローラーはまだ機能しており、値を正しく変更しているため、防止する必要があります。さらに、この画面を終了するために [戻る] ボタンを押すと、このコードは警告メッセージを 4 回表示します。この問題を解決するために私を助けてください。少しの助けをいただければ幸いです。

4

2 に答える 2

1

あなたのスクリーンのイメージを与えてください。また、ユーザーが正しいフィールドに入力していないため、ユーザーの操作を制限したいと思いますか?

PS:コメントできません。そのため、これを回答にしています

于 2013-04-24T06:48:01.353 に答える