2011-12-21 2 views
-1

J'ai un UITextfield et je dois vérifier que la valeur entrée est dans une plage particulière (disons entre 2 et 10). quelqu'un peut-il aider avec un exemple de code?Vérification de la valeur dans l'UITextfiled

J'utilisais ce code

if([[textfieldobject.text stringByTrimmingCharactersInSet: 
         [NSCharacterSet whitespaceCharacterSet]] length] != 0 && 
         [[textfieldobject.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length] <= 2 && 
         [[textfieldobject.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length] > 10) 

Répondre

1

Convertissez simplement la valeur de chaîne en int, puis vérifiez la plage. intValue retournera toujours une conversion int valide (zéro si quelque chose de non-numérique). Sachez simplement que si quelqu'un tape "a10", le résultat sera 0 et dans le code ci-dessous, il tombera à portée.

int convertedValue = [textFieldObject.text intValue]; 
if (convertedValue >= 0 && convertedValue <= 10) { 
    NSLog(@"In range"); 
} else { 
    NSLog(@"Out of range"); 
} 

Vous pouvez éviter de caractères de gamme car ils sont tapés en remplaçant le délégué UITextFieldDelegate:

shouldChangeCharactersInRange 

ou remplacer ce délégué et exécutez votre chèque, puis pop un avis et faire le montage de l'utilisateur .

textFieldDidEndEditing 
+0

si ([[textfieldobject.text stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]] longueur]! = 0 || ((joueurs> 2) && (joueurs <6))) { Code ... } d'autre { code ... } j'ai donné comme ceci mais il entre toujours dans la partie else – priya

0

Vous pouvez utiliser la longueur propriété pour cela.

+0

ne pas obtenir la réponse – priya

Questions connexes