2012-10-01 23 views
7

Kullanıcı Çince Pinyin gibi bir Giriş Yöntemi kullanarak bir UITextView içinde giriyorsa, Pinyin'in tne metin görünümünde halihazırda görüntülendiği bir durum vardır, ancak kullanıcı henüz en son Çince karakterleri seçmeye henüz başlamamıştır.Kullanıcı bir Giriş Yöntemi ile orta yol girişini nasıl algılar?

enter image description here

Ben kullanıcı için bazı metin tamamlama yapmak istiyorum, ama gerçek girişinin (Çince karakterler kullanıcı seçer) fakat ara Pinyin girişi için için bunu sadece olmalıdır: Bir ekran çok daha net olacak . Bu yüzden bu bekleyen durumu tespit etmem gerekiyor.

cevap

24

Sonunda anladım. Pinyin gibi giriş yöntemleri Multistage Text Input olarak adlandırılır. İlk aşamaya Marked denir, ikinci aşamaya Committed denir. o Marked aşamasında olup olmadığını belirlemek için, bir UITextInput Protokol'ün markedTextRange özelliğini sorgulaması gerekir:? 办法 禁止 什么 有

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

“联想” 功能 谢谢 –

+0

Merhaba, nerede hatta bir karakter girilen olduğunda algılamak biliyorlardı? UITextViewDelegate'nın textViewDidChange', 'NSNotificationCenter''nın' UIControlEventEditingChanged' ve diğer pek çok şeyi boş yere kullanmasını denedim. –