Lorsqu'un clavier matériel est utilisé avec iOS, appuyer sur la touche Tab ou Maj-Tab accède automatiquement au répondeur logique suivant ou précédent, respectivement. Existe-t-il un moyen de faire la même chose par programme (c'est-à-dire de simuler la touche de tabulation plutôt que de suivre manuellement l'ordre logique)?Simuler la touche de tabulation Appuyer sur iOS SDK
Répondre
Vous ne savez pas si cela aide, mais dans le contexte d'un UITextFields, si vous implémentez UITextFieldDelegate
, - (BOOL)textFieldShouldReturn:(UITextField *)textField
sera appelée lorsque la touche de retour du clavier logiciel est enfoncée. J'ai essayé de frapper directement sur mon clavier d'ordinateur portable et il a semblé sauter entre tous les champs de texte dans l'ordre dans lequel vous les avez ajoutés à la vue, mais je n'ai pas utilisé d'autres types de champs (Boutons etc.).
La touche du clavier simule la touche du clavier logiciel du simulateur, qui fonctionne comme prévu.
Vous pouvez définir "l'ordre des tabulations" en utilisant la propriété de l'étiquette. Le message suivant décrit comment trouver l'index de balise suivant pour UITextField
s, How to navigate through textfields (Next/Done Buttons).
Voici une version modifiée du code de cet article. Au lieu de supprimer le clavier au dernier index de balise, le code suivant tentera de revenir au premier index de balise.
-(BOOL)textFieldShouldReturn:(UITextField*)textField;
{
NSInteger nextTag = textField.tag + 1;
// Try to find next responder
UIResponder* nextResponder = [textField.superview viewWithTag:nextTag];
if (nextResponder) {
// Found next responder, so set it.
[nextResponder becomeFirstResponder];
return NO;
}
// Try to find the first responder instead...
// Assuming the first tag index is 1
UIResponder* firstResponder = [textField.superview viewWithTag:1];
if (firstResponder) {
// loop back to the first responder
[firstResponder becomeFirstResponder];
} else {
// Not found, so remove keyboard.
[textField resignFirstResponder];
}
return NO; // We do not want UITextField to insert line-breaks.
}
Si vous voulez un élément d'interface utilisateur autre que UITextField
, vous devriez toujours être en mesure d'utiliser la même logique, avec quelques contrôles.
Comme William Niu a raison, mais vous pouvez également utiliser ce code expliqué ci-dessous.
Je l'ai utilisé cela et obtenu success.Now Prenons l'exemple de UITextField ...
Vous pouvez utiliser la méthode déléguée de UITextView -(BOOL)textFieldShouldReturn:(UITextField*)textField
comme expliqué ci-dessous. Mais avant cela, vous devez donner un tag à chaque UITextField dans un ordre d'incrément ... (L'ordre d'incrément n'est pas nécessaire, mais pour mon code, il est nécessaire, vous pouvez également utiliser l'ordre décroissant mais du code changements pour ce faire)
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
NSInteger nextTag = textField.tag + 1;
UIResponder* nextResponder = [self.view viewWithTag:nextTag];
if (nextResponder) {
[nextResponder becomeFirstResponder];
} else {
[textField resignFirstResponder];
}
return YES;
}
Espérons que cela fonctionnera pour vous ...
Bonne programmation ....
Cela fonctionne avec des champs de texte statiques, et est en fait une excellente approche, mais tout va bien si vos champs de texte sont dans des cellules viewview réutilisables. – n00neimp0rtant
- 1. obtenir la valeur appuyer sur la touche
- 2. appuyer sur la touche ALT dans CMainFrame
- 3. nouveau nœud sur appuyer sur la touche dans TreeView
- 4. Sélectionnez plusieurs lignes sans appuyer sur la touche de commande
- 5. Émulation « supprimer »-appuyer sur la touche de menu contextuel
- 6. Facebook SDK sur iOS
- 7. Désactiver soumettre à l'événement appuyer sur la touche
- 8. événement Capture appuyer sur la touche à l'aide NSNotificationCenter
- 9. Activer Intellisense IPhone sans appuyer sur la touche Echap
- 10. la touche de tabulation avec Cmd.cmd Python
- 11. Comment détecter la touche de tabulation en appuyant sur C#?
- 12. TWebBrowser et la touche de tabulation
- 13. Touche de tabulation de poignée dans ToolStripComboBox
- 14. iOS 4 Build SDK
- 15. Emacs retour à la ligne de code indenté quand je suis touche de retour 'appuyer sur
- 16. Parse youtube playlist sur iphone sdk/iOS
- 17. La touche de tabulation gvim ne fonctionne pas
- 18. Windows Phone 7 Emulator: Où est la touche de tabulation?
- 19. FaceBook IOS SDK - GitHub
- 20. SDK iPhone touche événement
- 21. Simuler Déplacer/cliquer/appuyer sur la souris dans une application qui n'est pas active
- 22. Comment simuler une touche multimédia (en C)?
- 23. Simulation CAPS LOCK appuyer sur Xlib
- 24. Ecriture de listes de lecture sur iTunes dans iOS SDK
- 25. J'ai un masque d'éditeur en flash qui affiche son mouvement sans appuyer sur la touche entrée
- 26. Comment sélectionner plusieurs éléments sans appuyer sur la touche Ctrl dans QGraphicsScene? Dans
- 27. Comment simuler appuyer sur entrer en entrée de texte html avec Selenium?
- 28. Comment appuyer sur une touche et la relâcher en utilisant C#?
- 29. Facebook iOS SDK 'autorisation unique'
- 30. get modifierFlags dans l'événement keyDown sans appuyer sur la touche non-modifiable avec elle!
en double de la question: http://stackoverflow.com/questions/3241966/ focus-sur-next-valid-key-view-on-iphone qui a eu une bonne réponse. –