J'ai 3 UITextFields dans un UITableView groupé et essaye de trouver la bonne logique pour que mon UIBarButtonItem 'Save' soit activé quand aucun des UITextFields n'est vide.Activer UIBarButtonItem si plusieurs UITextFields sont tous remplis
J'utilise actuellement la méthode de délégation UITextField - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
pour détecter les modifications apportées au caractère champ par caractère, mais elle fournit des résultats incohérents.
Des idées?
Modifier: Voici le code que j'utilise maintenant. Comme vous pouvez le voir, j'ai placé mes champs de texte dans un tableau afin que je puisse les parcourir. Comme c'est le cas maintenant, le bouton de sauvegarde n'est activé que lorsque j'entre le 2ème caractère dans le 3ème champ. En outre, il alterne activé/désactivé comme un caractère de suppression un par un des champs.
NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
BOOL allValid;
if (newString.length)
{
// Cycle through array checking for completeness
for (int i = 0; i < [textFieldArray count]; i++)
{
if ([[[textFieldArray objectAtIndex:i] text] length] > 0)
{
allValid = YES;
NSLog(@"TextField #%i Validates.", i);
}
else
{
allValid = NO;
NSLog(@"TextField #%i Does Not Validate.", i);
}
}
}
else
{
NSLog(@"Invalid");
allValid = NO;
}
if (allValid)
[saveButton setEnabled:YES];
else
[saveButton setEnabled:NO];
return YES;
J'ai mis à jour ma question pour clarifier ce que j'essaie de faire. –