2012-10-01 5 views
7

Wenn Benutzer in einer UITextView mit einer Eingabemethode wie Chinesisch Pinyin eingeben, gibt es einen Zustand, in dem Pinyin bereits in der Textansicht angezeigt wird, aber Benutzer noch die letzten chinesischen Zeichen auswählen müssen. Ein Screenshot wird viel mehr klar:Wie erkennt man, dass der Benutzer mitten in der Eingabe mit einer Eingabemethode ist?

enter image description here

Ich mag einige Textvervollständigung für Benutzer tun, aber es sollte nur für den realen Eingang tun (der chinesischen Schriftzeichen Benutzer wählt), aber nicht für den Zwischen Pinyin Eingang . Also muss ich diesen ausstehenden Status erkennen.

Antwort

24

Endlich verstanden. Eingabemethoden wie Pinyin heißen Multistage Text Input. Die erste Stufe heißt Marked, die zweite Stufe heißt Committed. Um festzustellen, ob es in Marked Stadium ist, sollte man UITextInput Protokoll markedTextRange Eigenschaft abfragen:

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

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

+0

Hallo, wissen Sie, wo zu erkennen, wenn es auch ein Zeichen eingegeben? Ich habe 'UITextViewDelegate's' textViewDidChange', 'NSNotificationCenter's' UIControlEventEditingChanged' und verschiedene andere Sachen versucht, alle ohne Erfolg. –

Verwandte Themen