2012-10-01 10 views
7

Se l'utente sta inserendo un UITextView utilizzando un metodo di input come Pinyin cinese, c'è uno stato in cui il Pinyin è già visualizzato nella visualizzazione del testo, ma l'utente deve ancora scegliere i caratteri cinesi finali. Uno screenshot sarà molto più chiaro:Come rilevare l'utente è l'introduzione a metà strada con un metodo di input?

enter image description here

voglio fare un po 'di completamento del testo per l'utente, ma solo dovrebbe farlo per il vero e proprio ingresso (l'utente caratteri cinesi sceglie), ma non per l'ingresso intermedi Pinyin . Quindi ho bisogno di rilevare questo stato in sospeso.

risposta

24

Finalmente capito. I metodi di input come Pinyin sono chiamati Multistage Text Input. Il primo stadio si chiama Marked, il secondo stadio si chiama Committed. Per determinare se è in Marked fase, si dovrebbe interrogare UITextInput del Protocollo markedTextRange proprietà:?

if (textView.markedTextRange != nil) { 
    // Marked. 
} 
+0

有 什么 办法 禁止 “联想” 功能 谢谢 –

+0

Ciao, lo sapevate dove rilevare quando c'è anche un carattere immesso? Ho provato 'UITextViewDelegate''s' textViewDidChange', 'NSNotificationCenter''s' UIControlEventEditingChanged' e varie altre cose tutto inutilmente .. –

Problemi correlati