7
votes

Dans une application iOS Comment puis-je détecter que l'utilisateur a appuyé sur l'une des touches fléchées de leur clavier externe?

J'ai quelques applications IOS qui présentent des informations intrinsèquement organisées de manière linéaire, permettant à l'utilisateur d'avancer et de reculer les données avec des contrôles à l'écran. J'aimerais permettre aux utilisateurs du dock de clavier ou d'un clavier Bluetooth jumelé pour utiliser les touches fléchées pour aller d'avant en arrière. Étant donné que les applications sont en plein écran, il est très important pour l'expérience utilisateur qu'il n'y a aucun risque d'affichage d'un clavier à l'écran comme effet secondaire.

Je ne trouve pas une API qui me laissera faire cela dans la documentation d'Apple; Mais je ne peux pas être sûr d'avoir utilisé les bons termes de recherche.

Quelles API y a-t-il, ce qui me permettra d'y parvenir?

Mise à jour: Je l'ai soulevée comme une amélioration sur site de rapport de bogue d'Apple .


0 commentaires

4 Réponses :


0
votes

Ne sachant pas réellement, je soupçonne que la réponse est "Vous ne pouvez pas, pas de manière officielle".

Étant donné qu'un UI convivial est une priorité absolue pour la plate-forme iPad selon Apple, je pense qu'ils font ce qu'ils peuvent pour décourager les comportements qui dépendraient d'un clavier étant disponible. Les applications doivent se comporter de même et fournir la même fonctionnalité avec ou sans clavier matériel. Des choses telles que les touches de raccourci clavier ou la navigation qui n'utilisent pas d'éléments à l'écran ne sont probablement pas nulles: s pour cette raison.

Mais, comme je l'ai dit, il s'agit simplement de spéculation.


3 commentaires

Il n'essaie pas de demander un clavier, faites simplement l'application utilisable sans retirer les mains du clavier si vous faites en avez un. C'est une augmenter dans la convivialité.


@Nicholas Yep, je vois ce qu'il veut faire, et je ne dis pas que c'est faux de quelque manière que ce soit. :) Comme il existe une clé "suivante" sur le clavier souple, quelque chose de similaire doit également être faisable d'un clavier dur. Mais je soupçonne que l'utilisation de raccourcis clavier à, par exemple, de nouveaux contrôleurs d'affichage iraient à l'encontre de la philosophie iPad.


Aussi (jouer aux Devils préconisant ici) Avoir des applications Soyez plus convivial lorsqu'un clavier dur est présent pourrait ne pas être ce que Apple se sent le meilleur pour la plate-forme ... ils souhaitent probablement minimiser le besoin de périphériques externes. Mais tout cela n'a rien à voir avec la question réelle. :)



0
votes

Vous pouvez éliminer entièrement le clavier en ajoutant simplement une prise en charge d'un balayage gauche / droit ou de faire glisser la gestes afin que l'utilisateur puisse essentiellement traiter l'application comme une galerie de photos. Aucun contrôle à l'écran n'est nécessaire: c'est un paradigme de navigation native de périphérique, facile à expliquer sur un écran de démarrage de l'application.

Si un clavier externe est requis afin de prendre en charge une autre fonctionnalité de collecte de données de l'application, les utilisateurs subiront le problème "Gorilla Bras" ...


0 commentaires

3
votes

Vous pouvez facilement déterminer quelles touches fléchées sont enfoncées en faisant référence à uikeyinput et uikeyinputdelegate . La méthode que vous recherchez spécifiquement est PositionFomposition: Indirection: Décalage: .

Après que cette méthode soit appelée (elle est utilisée par IOS pour déterminer la plage de sélection), il appelle ensuite SEselectedText: . Mettez nslog des instructions dans la position PositionFomposition: Indirection: Décalage: Pour déterminer comment cela fonctionne (vous êtes responsable de la plomberie).

Regardez également le SimpleTextInput . Cela vous fournira un modèle sur le sous-classement uitextinput .


1 commentaires

Qu'en est-il d'une vision d'Uitext vide? Cela fonctionne pour les touches fléchées gauche et droite, mais je n'ai pas pu trouver un moyen d'identifier séparément les touches UP et Down - ils génèrent tous les deux les mêmes choses pour nslog .



3
votes

La réponse dans Comment puis-je répondre Pour les touches fléchées du clavier externes? - Créez un champ de texte caché et réagissez aux modifications de sélection - travaillé pour moi.


0 commentaires