2013-05-02 13 views
5

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

1

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.

Più: https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/LowerLevelText-HandlingTechnologies/LowerLevelText-HandlingTechnologies.html