J'ai un champ UITextfield que je voudrais rejeter le clavier pour. Je n'arrive pas à faire disparaître le clavier quel que soit le code que j'utilise.Comment rejeter le clavier iOS?
Répondre
[myTextField resignFirstResponder]
Here, deuxième paragraphe dans la section Gestion du clavier.
Je vous suggère d'ajouter et de l'action sur votre fichier d'en-tête:
-(IBAction)removeKeyboard;
Et dans la mise en œuvre, écrivez quelque chose comme ceci:
-(IBAction)removeKeyboard
{
[self.textfield resignFirstResponder];
}
Dans le fichier NIB, connectez-vous du UITextFiled au File's Owner sur l'option DidEndOnExit. De cette façon, lorsque vous appuyez sur retour, le clavier disparaît.
J'espère que ça aide!
Si vous avez plusieurs champs de texte et ne savez pas lequel est le premier répondeur (ou si vous n'avez simplement pas accès aux champs de texte où que vous écrivez ce code), vous pouvez appeler endEditing:
sur la vue parente contenant les champs de texte.
Dans la méthode d'un contrôleur de vue, il ressemblerait à ceci:
[self.view endEditing:YES];
Le paramètre force le champ de texte à démissionner statut de premier répondeur. Si vous utilisez un délégué pour effectuer la validation et je voulais tout arrêter jusqu'à ce que le contenu du champ de texte étaient valides, vous pouvez aussi le code comme ceci:
BOOL didEndEditing = [self.view endEditing:NO];
if (didEndEditing) {
// on to the next thing...
} else {
// text field must have said to first responder status: "never wanna give you up, never wanna let you down"
}
La méthode endEditing:
est beaucoup mieux que de dire des champs de texte individuels resignFirstResponder
, mais pour une raison que j'ignore, je ne l'ai jamais découvert jusqu'à récemment.
Vous venez de remplacer yourTextFieldName
avec, vous l'avez deviné! votre champ de texte. Cela fermera le clavier.
[yourTextFieldName resignFirstResponder];
-(void)methodName
{
[textFieldName resignFirstResponder];
}
appeler cette méthode (methodName) avec didEndOnExit
Si vous ne savez pas quel textField est le premier répondeur vous pouvez le trouver. J'utilise cette fonction:
UIView *resignFirstResponder(UIView *theView)
{
if([theView isFirstResponder])
{
[theView resignFirstResponder];
return theView;
}
for(UIView *subview in theView.subviews)
{
UIView *result = resignFirstResponder(subview);
if(result) return result;
}
return nil;
}
Puis dans votre code appel:
UIView *resigned = resignFirstResponder([UIScreen mainScreen]);
Dans votre contrôleur de vue fichier YourViewController.h, assurez-vous de mettre en œuvre le protocole UITextFieldDelegate:
@interface YourViewController : <UITextFieldDelegate>
@end
Ensuite, dans le fichier YourViewController.m, implémentez la méthode d'instance suivante:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self.yourTextField1 resignFirstResponder];
[self.yourTextField2 resignFirstResponder];
...
[self.yourTextFieldn resignFirstResponder];
}
Il existe des cas où aucun champ de texte est le premier répondeur mais le clavier est à l'écran. Dans ces cas, les méthodes ci-dessus ne parviennent pas à fermer le clavier.
Un exemple de comment y arriver:
- pousser le ABPersonViewController à l'écran par programme; ouvrir un contact; Touchez le champ "note" (qui devient le premier répondeur et allume le clavier); Balayez vers la gauche dans tout autre champ pour faire apparaître le bouton "supprimer"; À ce stade, vous n'avez aucun premier répondant parmi les champs de texte (vérifiez simplement par programmation) mais le clavier est toujours là. Appeler [view endEditing: YES] ne fait rien.
Dans ce cas, vous devez également demander au contrôleur de vue pour quitter le mode d'édition:
[viewController setEditing:NO animated:YES];
J'ai découvert un cas où endEditing
et resignFirstResponder
échouent. Cela a fonctionné pour moi dans ces cas.
[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];
[self setEditing:NO];
Ce démissionnera un champ de texte particulier
// Swift
TextField.resignFirstResponder()
// Objective C
[TextField resignFirstResponder];
Renoncer toute utilisation du champ de texte ci-dessous le code
// Swift
self.view!.endEditing(true)
// Objective C
[self.view endEditing:YES];
-(void)textFieldDidBeginEditing:(UITextField *)textField
{
// your code
[textField reloadInputViews];
}
Pour Swift 3
Vous pouvez cacher le clavier comme ceci:
textField.resignFirstResponder()
Si vous voulez cacher le clavier lorsque la presse utilisateur sur le bouton « intro », vous devez mettre en œuvre la méthode UITextFieldDelegate
suivante:
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
- 1. Impossible de rejeter le clavier iOS. Rien ne fonctionne
- 2. Android rejeter le clavier « naturellement »
- 3. Comment rejeter le clavier sur un UIWebView?
- 4. rejeter le clavier dans un service?
- 5. IPad Rejeter événement clavier manipulation
- 6. Ne pas rejeter le clavier avec rechargeCollectionCellule
- 7. Comment perdre le focus de UITextField sans rejeter le clavier
- 8. iOS - Rejeter UIDatePicker présenté comme inputView
- 9. Comment rejeter le clavier en cas de vue modale?
- 10. iOS - GKPeerPickerController [Préparateur rejeter] accident
- 11. cacher le clavier ios
- 12. Flurry Ads iOS Banners rejeter
- 13. Rejeter le clavier avec UISearchBar, sans démissionner du premier répondeur
- 14. Rejeter le clavier lorsque l'utilisateur touche la vue
- 15. IPad rejeter le clavier sans savoir quel Textfield l'a ouvert
- 16. Comment charger automatiquement le clavier (iOS SDK)?
- 17. IOS clavier entrer le sélecteur
- 18. iOS SDK: Ignorer le clavier lorsqu'un bouton est cliqué?
- 19. iOS numéro de rappel rejeter ViewController
- 20. iOS Clavier montre SAVE
- 21. IOS Ignorer/Afficher le clavier sans quitter le premier répondeur
- 22. Impossible de masquer le clavier dans iOS
- 23. iOS: remplacement du clavier
- 24. Raccourcis clavier dans iOS?
- 25. Comment est-ce que je peux rejeter le clavier sur Enter keypress
- 26. Comment puis-je rejeter le clavier dans iPhone OS 3.2 avec champ de texte dans popover?
- 27. comment rejeter le clavier, lorsque vous avez fini de taper dans l'iphone?
- 28. Ne pas afficher le clavier sur iOS
- 29. iOS - Le clavier ne s'affiche pas
- 30. iOS: Crash lorsque le clavier est utilisé ...?
Zut! Je n'arrive pas à croire que je viens de recevoir un commentaire sur un code. – Lytol