2012-10-01 8 views
7

Si el usuario ingresa en una UITextView utilizando un método de entrada como el chino Pinyin, hay un estado en el que el pinyin ya se muestra en la vista de texto, pero el usuario todavía no ha elegido los caracteres chinos finales. Una captura de pantalla será mucho más claro:¿Cómo detectar al usuario está entrando a mitad de camino con un método de entrada?

enter image description here

Quiero hacer algo de la terminación de texto para el usuario, pero sólo debe hacerlo por la entrada real (el usuario los caracteres chinos elige), pero no para la entrada de Pinyin intermedia . Entonces necesito detectar este estado pendiente.

Respuesta

24

Finalmente lo tengo. Los métodos de entrada como Pinyin se llaman Multistage Text Input. La primera etapa se llama Marked, la segunda etapa se llama Committed. Para determinar si se trata de Marked etapa, se debe consultar UITextInputmarkedTextRange propiedad del Protocolo:?

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

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

+0

Hola, ¿se sabe dónde para detectar cuando hay incluso un carácter introducido? Intenté 'textViewDidChange' de' UITextViewDelegate', 'UIControlEventEditingChanged' de' NSNotificationCenter' y varios otros elementos, todo en vano. –

Cuestiones relacionadas