web-dev-qa-db-fra.com

Objectif c vérifier si le champ de texte est vide

Voici le code:

- (IBAction) charlieInputText:(id)sender {
    //getting value from text field when entered
    charlieInputSelf = [sender stringValue];

    if (charlieInputSelf != @"") {
        //(send field if not empty
    }
}    

Cela l'envoie même lorsque le champ est vide; par conséquent, cela ne fonctionne pas comme je le souhaite.

36
objectiveccoder001

Vérifie simplement zéro et si la longueur du texte est supérieure à 0 - pas vide

if (textField.text && textField.text.length > 0)
{
   /* not empty - do something */
}
else
{
   /* what ever */
}
85
Joshua Weinberg

Nous avons déjà une méthode intégrée qui renvoie une valeur booléenne qui indique si les objets de saisie de texte ont du texte ou non.

// In Obj-C
if ([textField hasText]) {
        //*    Do Something you have text
    }else{
         /* what ever */
    }

// In Swift

if textField.hasText {
    //*    Do Something you have text
}else{
     /* what ever */
}
54
Gaurav Pandey

Joshua a la bonne réponse dans le cas étroit, mais généralement, vous ne pouvez pas comparer les objets chaîne en utilisant les opérateurs == ou! =. Tu dois utiliser -isEqual: ou -isEqualToString: C'est parce que charlieImputSelf et @"" sont en fait des pointeurs vers des objets. Bien que les deux séquences de caractères puissent être identiques, elles n'ont pas besoin de pointer au même emplacement en mémoire.

8
JeremyP

Ces "travaux" en quelque sorte. Cependant, j'ai trouvé que l'utilisateur peut simplement remplir la zone avec des espaces. J'ai trouvé que l'utilisation d'expressions régulières aide (bien que ce que j'utilise pour les mots sans espaces), je ne sais pas vraiment comment autoriser les espaces.

NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[ ]" options:NSRegularExpressionCaseInsensitive error:&error];

if (!([[inputField stringValue]isEqualTo:regex])) {
        NSLog(@"Found a match");
// Do stuff in here //
}
2
Jon Wei

La façon la plus efficace de le faire est d'utiliser ce

// set it into an NSString
NSString *yourText = yourVariable.text;

if([theText length] == 0])
{
 // Your Code if it is equal to zero
}
else
{
// of the field is not empty

}
1
ScottMobile

Vérifiez si le champ de texte est vide dans Swift

  @IBOutlet weak var textField: NSTextField!
  @IBOutlet weak var multiLineTextField: NSTextField!

  @IBAction func textChanged(sender: AnyObject) {
    //println("text changed! \(textField.stringValue)")

    if textField.stringValue.isEmpty == false {
      multiLineTextField.becomeFirstResponder()
      multiLineTextField.editable = true
    } else {
      multiLineTextField.editable = false
    }
  }
1
seinfeld