画面に複数のテキストフィールドがあります。すべてのテキスト フィールドの検証という名前の 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 回表示します。この問題を解決するために私を助けてください。少しの助けをいただければ幸いです。