Dans mon application j'ai un champ de texte qui prend un certain nombre de saisie de l'utilisateur, donc je mets le type de clavier à "pavé numérique" mais maintenant je suis coincé sur la façon dont je devrais le rejeter. Je sais que je dois employer la méthode de délégué "textfieldShouldReturn" mais le problème est que le pavé numérique n'a pas une clef de retour. Est-il nécessaire d'ajouter une clef faite sur commande au clavier ou il y a un autre moyen de sortir?ignorer Numéro Pad
Répondre
Vous devez ajouter un robinet d'arrière-plan
-(IBAction)backGroundTap:(id)sender
dans le point h puis dans le fichier dot m
-(IBAction)backGroundTap:(id)sender
[nameField resignFirstResponder];
[numberField resignFirstResponder];
thx Purple ....... mais qu'est ce que backgroundtap et nameField est le nom de textfield? et qu'est-ce que nameField ici? – Siddharth
UITapGestureRecognizer * tapBackground = [[UITapGestureRecognizer alloc] initWithTarget: action de soi: @selector (tapBackground :)]; [self.view addGestureRecognizer: tapBackground]; –
Pour ajouter un arrière-plan, appuyez sur reconnaissance des gestes –
Une autre solution - Ajouter inputAccessoryView
à yourNumberTextFiled
- (void)viewDidLoad
{
[super viewDidLoad];
UIToolbar* numberToolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
numberToolbar.barStyle = UIBarStyleBlackTranslucent;
numberToolbar.items = [NSArray arrayWithObjects:
[[UIBarButtonItem alloc]initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancelNumberPad)],
[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil],
[[UIBarButtonItem alloc]initWithTitle:@"Apply" style:UIBarButtonItemStyleDone target:self action:@selector(doneWithNumberPad)],
nil];
[numberToolbar sizeToFit];
numberTextField.inputAccessoryView = numberToolbar;
}
-(void)cancelNumberPad{
[numberTextField resignFirstResponder];
numberTextField.text = @"";
}
-(void)doneWithNumberPad{
NSString *numberFromTheKeyboard = numberTextField.text;
[numberTextField resignFirstResponder];
}
Si vous connaissez la longueur du numéro à saisir (par ex. un code PIN à 4 chiffres) vous pouvez supprimer automatiquement le clavier après 4 touches saisies.
je frappe un problème démissionnant le premier intervenant après 4 touches (il ignorerait la dernière pression de touche si vous êtes retourné OUI après sa démission, alors j'ai ajouté un retard async à sa démission.
Ce code est le délégué UITextField :
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
// max 4 keypresses
if(range.location == 3){
// async workaround for can't return YES after resignFirstResponder
[self performSelector:@selector(closeKeypad:)
withObject:textField
afterDelay:0.1
];
}
else if(range.location > 3){
return NO;
}
return YES;
}
-(void) closeKeypad:(UITextField*)textField {
[textField resignFirstResponder];
}
Une autre solution qui est assez facile à mettre en œuvre et qui travaille pour changer la mise au point d'entrée ou pour rejeter le clavier
implémenter cette fonction (et le délégué UITextFieldDelegate):.
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
Ensuite, lorsque vous voulez rejeter le clavier ou changer la mise au point, il vous suffit d'appeler un notificateur comme ça:
[self performSelector:@selector(focusNextField:) withObject:textField afterDelay:0.1];
Enfin, rejeter le clavier sur celui-ci:
- (void) focusNextField:(UITextField *) textField
{
[textField resignFirstResponder];
// some code
}
Rien d'autre!
- 1. Comment diable ont-ils fait cela? pad pad numérique personnalisé
- 2. comment ignorer le numéro de révision ivy?
- 3. Pad flotteurs python
- 4. C# pad gauche à chaîne
- 5. Ignorer le numéro de build lors de la référence dll
- 6. Pad un entier en utilisant une expression régulière
- 7. lignes Pad dans le schéma de fichier plat BizTalk
- 8. créer par programme un son de pad
- 9. Comment pad avec n caractères en Python
- 10. Comment développer un pad de griffonnage?
- 11. Regex: Ignorer/Ignorer le modèle
- 12. PAD (Description Portable Application) fichiers pour shareware/freeware
- 13. Comment créer un Pad simple dans Dictation Delphi2009 + Vista
- 14. Pad octet [] à multiple de 16 octets pour AES Encryption
- 15. Comment implémenter un D-Pad virtuel sur iPhone?
- 16. Coder et pad netbios nom en utilisant python
- 17. pad prefresh à n'importe quelle fenêtre au lieu de stdscr?
- 18. bloc de pad corrompu pendant le décryptage (Android)
- 19. iphone Numéro aléatoire numéro
- 20. RegEx pour ignorer/ignorer tout dans les balises html
- 21. SCons: GCC Ignorer -c
- 22. Ignorer les espaces blancs
- 23. Regex ignorer mot suivant
- 24. Ignorer annotation Hibernate @Where
- 25. Android Ignorer Flip
- 26. Ignorer SIGINT dans Java
- 27. Comment ignorer avec __autoload?
- 28. mercurial ignorer les fichiers
- 29. Comment ignorer une exception?
- 30. pylint ignorer par répertoire
duplicata possible de [Comment afficher le bouton 'Terminé' sur le pavé numérique de l'iPhone?] (Http://stackoverflow.com/questions/584538/how-to-show-button-done-on-number-pad- on-iphone) – kennytm
mais Kenny en ce qu'il est mentionné que nous devons ajouter la clé de retour je veux savoir que nous ne pouvons pas le faire sans ajouter la clé – Siddharth
Bien sûr, vous pouvez le faire sans la touche Terminé, il suffit de créer une méthode resignFirstResponder' (comme dans [@PurplePilot] (http://stackoverflow.com/questions/3127104/dismissing-number-pad/3127138#3127138) la réponse.) – kennytm