Sto implementando una visualizzazione di input di testo personalizzato, che adotta il protocollo, quando si utilizza UITextView
, doppio tocco su una parola rendere la parola selezionata, mi chiedo come UITextInput
utilizzare il suo tokenizer per tokenizzare la stringa, ormai non ho visto alcun differenza con o senza assegnare un tokenizzatore per UITextInput sovrascrivendo il metodo [UITextInput -tokenizer]
.Tokenizer di UITextInput, a cosa serve?
risposta
Viene utilizzato per cose come la navigazione da tastiera (quando si ha una tastiera hardware collegata). Ad esempio, navigando tra le parole tenendo premuto Opzione e usando i tasti freccia, andando all'inizio/fine riga.
Da Guida alla programmazione di testo di Apple per iOS:
tokenizers sono oggetti che determinano se una posizione di testo è all'interno o al confine di un'unità di testo con una data granularità. Quando viene interrogato dal sistema di immissione del testo, un tokenizzatore restituisce intervalli di unità di testo con una data granularità o posizione del testo limite per un'unità di testo con una granularità data. Le granularità attualmente definite sono carattere, parola, frase, paragrafo, linea e documento; enum le costanti del tipo UITextGranularity rappresentano queste granularità. Granularità delle unità di testo vengono sempre valutate con riferimento a una direzione di archiviazione o layout.
Il sistema di input di testo utilizza il tokenizer in vari modi. Per esempio , la tastiera potrebbe richiedere il valore di ultima frase del contesto per capire cosa l'utente sta cercando di digitare. Oppure, se l'utente preme il tasto freccia sinistra-opzione (su una tastiera esterna), il sistema di testo interroga il tokenizer per trovare le informazioni di cui ha bisogno per passare alla parola precedente.