All'interno di un iOS Come faccio a rilevare che l'utente ha premuto uno dei tasti freccia sulla loro tastiera esterna?
-
08-10-2019 - |
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 .
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 ??strong> al fine di sostenere altri dati di raccolta app funzionalità tuttavia, gli utenti sperimenteranno il problema "gorilla braccio" ...