Question

J'ai une zone de saisie de texte dans mon application iphone. Lorsque vous la touchez dans le simulateur, le clavier apparaît. Mais il n'y a aucun moyen de s'en débarrasser. D'autres pages Web offrent des solutions, sans expliquer pourquoi elles devraient fonctionner, et elles ne fonctionnent pas pour moi. On dit que le délégué de la zone de texte doit être votre vue uiview puis appeler resignfirstresponder sur l'objet, mais il n'est jamais appelé. Aucune suggestion? Quelqu'un peut-il expliquer ce qui se passe réellement? Je peux le comprendre moi-même si je connaissais le paradigme de la conception ...

Peut-être que je devrais mettre un "go" " bouton donc j'ai quelque chose à obtenir le focus loin du champ de texte?

Était-ce utile?

La solution

Une façon de le faire est de définir un objet en tant que délégué du champ de texte et de le mettre en œuvre

- (BOOL)textFieldShouldReturn:(UITextField *)textField

dans lequel vous appelez [textField resignFirstResponder]

Cela entraînera la disparition du clavier lorsqu’il appuiera sur le bouton retour / aller / fait (quelle que soit la définition de la touche inférieure droite du clavier).

Voir le

Autres conseils

Pour supprimer le clavier, vous pouvez utiliser TextField Delegate.

Pour utiliser ceci, suivez ces étapes ...
1. Dans viewController. h , ajoutez la déclaration de délégué comme suit:     

@interface ViewController : UIViewController <UITextFieldDelegate> {
    }
2. Dans votre viewController. m , appelez cette méthode:     
- (BOOL)textFieldShouldReturn:(UITextField *)textField
3. Puis écrivez un code comme celui-ci:     
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return YES;
    }
4. La dernière étape consiste à définir le délégué de textField:     
- (void)viewDidLoad {
        [super viewDidLoad];
        self.textField.delegate = self;
    }

- (BOOL) textFieldShouldReturn: (UITextField *) textField est appelé dans votre délégué lorsque vous appuyez sur le bouton de retour.

Vous souhaitez appeler [textField resignFirstResponder] , puis renvoyer YES . Cela devrait faire l'affaire. Assurez-vous également que le délégué est défini. En cas de doute, ajoutez un point d'arrêt ou NSLog et vérifiez.

scroll top