TextField Validation avec l'expression régulière

J'ai besoin d'aide avec un code qui ressemble à un champ de texte assurez-vous qu'il commence par un (+ ou -) alors a 3 entiers après.

De manière valide les données ressemble à +234 ou -888

J'ai donc commencé ce code, mais il y a 2 problèmes avec elle

  1. Il valide correctement que seulement 4 caractères sont entrés. Mais pour quelque raison, vous devez prendre le focus hors de la zone de texte pour le bouton Terminé sur le clavier à feu et à masquer le clavier. Si je ne mets moins de 4 caractères dans la zone de texte, puis sur la touche Terminé fonctionne très bien. Mais je ne veux pas l'utilisateur d'entrer quoi que ce soit, mais de 4 caractères, puis appuyez sur Terminé et masquer le clavier. C'est le premier problème....
  2. Je ne suis pas familier avec les expressions régulières et comment les utiliser dans votre iphone. J'ai donc besoin d'ajouter à ce code une expression régulière pour la condition ci-dessus.
    -(BOOL)textField:(UITextField*)textFieldshouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    {
         NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
         return !([newString length] > 4);
    }
    //Done button to hide the keyboard
    -(IBAction)Done:(id)sender
    {
    
    }

source d'informationauteur Nick LaMarca