All'interno di un iOS Come faccio a rilevare che l'utente ha premuto uno dei tasti freccia sulla loro tastiera esterna?

StackOverflow https://stackoverflow.com/questions/3948200

Domanda

Ho un paio di applicazioni IOS che presenti intrinsecamente linearmente organizzati informazioni, permettendo all'utente di spostarsi avanti e indietro tra i dati con controlli su schermo. Vorrei per consentire agli utenti con il dock tastiera o una tastiera Bluetooth accoppiato di utilizzare i tasti freccia per spostarsi avanti e indietro come bene. Dal momento che le applicazioni sono a pieno schermo è molto importante per l'esperienza utente che non v'è alcun rischio di visualizzare una tastiera su schermo come un effetto collaterale.

non riesco a trovare un API che mi permette di fare questo nella documentazione di Apple; ma non posso essere sicuro che ho usato i termini di ricerca a destra.

Quali API sono lì che mi permetterà di raggiungere questo obiettivo?

Aggiornamento: Ho sollevato questo come un miglioramento sul bug sito dei report di Apple .

È stato utile?

Soluzione

In realtà non sapendo, ho il sospetto che la risposta è "non è possibile, non in modo ufficiale".

Dal momento che un user-friendly interfaccia utente è una priorità assoluta per la piattaforma iPad secondo Apple, penso che stanno facendo quello che possono per scoraggiare comportamenti che potrebbero dipendere da una tastiera di essere a disposizione. Apps dovrebbe comportarsi lo stesso e fornire la stessa funzionalità con o senza tastiera hardware. Cose come tasti di scelta rapida da tastiera o di navigazione che non utilizzano sullo schermo gli elementi sono probabilmente no-no: s per questo motivo

.

Ma, come ho detto, questo è solo speculazione.

Altri suggerimenti

La risposta in Come posso rispondere ai tasti freccia della tastiera esterni -? creare un campo di testo nascosto e reagire ai cambiamenti di selezione - ha lavorato per me.

Si può facilmente determinare quali tasti freccia vengono premuti facendo riferimento alle UIKeyInput e UIKeyInputDelegate. Il metodo che stai cercando specificamente è positionFromPosition:inDirection:offset:.

Dopo che il metodo viene chiamato (è usato da IOS per determinare l'intervallo di selezione) sarà quindi chiamare setSelectedText:. dichiarazioni NSLog mettere nel positionFromPosition:inDirection:offset: per determinare come funziona (sei responsabile per l'impianto idraulico).

Si veda anche il SimpleTextInput . Questo vi fornirà un modello su sottoclassi UITextInput.

Si potrebbe eliminare la tastiera interamente semplicemente aggiungendo il supporto per un gesto di sinistra / scorri verso destra o trascinare così l'utente può essenzialmente trattare l'applicazione come una galleria fotografica. Non ci sono controlli su schermo sono needed-- è un paradigma di navigazione dispositivo nativo, facile da spiegare in una schermata iniziale applicazione di avvio.

Se una tastiera esterna è richiesta al fine di sostenere altri dati di raccolta app funzionalità tuttavia, gli utenti sperimenteranno il problema "gorilla braccio" ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top