2014-10-05 11 views
8

Ho visto che questa domanda è stata posta alcune volte, ma nessuno sembra avere una risposta. Sto cercando di creare una funzione di correzione automatica su una tastiera personalizzata, ma sono completamente perso su come farlo. Apple fornisce alcuni documenti, ma non è molto dettagliato. So che ha qualcosa a che fare con i dati di UILexicon, ma non sono sicuro di cosa fare e come usarlo per correggere le stringhe di testo che l'utente sta digitando.Utilizzo di UILexicon per implementare la correzione automatica in iOS 8 Keyboard Extension

Qualsiasi aiuto sarebbe molto apprezzato.

Quello che ho trovato finora:

let controller = UIInputViewController() 

    controller.requestSupplementaryLexiconWithCompletion({ 
     lexicon in 

     println(lexicon.description) 

    }) 

Ma questo è quanto ho ottenuto. Non sono sicuro di cosa fare da qui.

+2

Grazie per ri-chiedere una domanda simile che ho postato - spero che qualcuno risponda! – agf119105

risposta

9

Stai facendo una domanda molto difficile. In breve, non vi è alcun accesso integrato alla correzione automatica su iOS8; non è inoltre possibile accedere alle API su iOS che consentono al sistema di eseguire operazioni come mostrare l'effetto di sottolineatura "errore possibile" rosso o altri aspetti del comportamento del sistema come la finestra di dialogo del suggerimento sul posto (in iOS 7, o se non hai la barra dei suggerimenti visibile) o lo sfondo blu 'correggi' (su iOS 8).

cose che non si può fare:

dotted red line

indicatore di errore sul posto finestra Correzione automatica sul posto

in-place suggestion

will correct

suggerimenti indicatore della barra di correzione automatica

quello che si può fare è scrivere il proprio motore di correzione automatica, partendo da zero, che comprende sia il proprio l'elaborazione del testo e analisi e le proprie idiomi dell'interfaccia utente. Tutto ciò deve essere fatto con la limitazione che non si è in grado di disegnare al di fuori dei limiti della tastiera e non è possibile modificare nient'altro sullo schermo. Un certo numero di tastiere di terze parti lo fanno, come ad esempio minuum e swiftkey (disclaimer: io lavoro su minuum) ma è una quantità di lavoro non incidentale. Se sei interessato a giocare con questo, un buon punto di partenza potrebbe essere la classe integrata UITextChecker, sebbene l'auto-correzione sia in definitiva un problema diverso dal controllo ortografico.

UILexicon è utile solo dopo aver già implementato le cose; tutto ciò che ti offre veramente è un elenco di parole che puoi utilizzare per completare qualsiasi dizionario che stai utilizzando, oltre a implementare eventuali scorciatoie di testo che il tuo utente potrebbe aver aggiunto nelle impostazioni del tuo sistema. Da solo, non è sufficiente costruire un sistema di correzione automatica da.

addendum: How to Write a Spelling Corrector è un piccolo grande saggio/tutorial di Peter Norvig che potreste trovare interessante, e che consiglierei anche se non sei non cercando di scrivere di correzione automatica.

+2

Quando inizialmente ho fatto questa domanda, ho controllato ogni giorno per una risposta e alla fine ho rinunciato. Ho finito per creare un autocorrect molto primitivo digitando sulla mia tastiera senza guardarlo, e quindi aggiungendo tutte le parole errate come una chiave su un Plist con la parola corretta come valore. Quindi ogni parola digitata, controlla se ha una coppia. Non è affatto efficiente e ci vuole un tempo per aggiungere nuove parole, ma funziona! L'articolo che hai aggiunto è ESATTAMENTE quello che stavo cercando da sempre. Quindi grazie per la tua risposta. La mia tastiera è un layout di Dvorak se ti interessa a proposito! – SomeGuy

Problemi correlati