2012-10-01 8 views
7

中国語ピンインなどの入力方法を使用してユーザーがUITextViewに入力している場合、Pinyinがすでにテキストビューで表示されていますが、まだユーザーはまだ最終漢字を選択していない状態があります。スクリーンショットは、はるかに明確になります。ユーザーを検出する方法は、入力方法で中途半端に入力していますか?

enter image description here

私は、ユーザーのために、いくつかのテキスト補完をしたいが、実際の入力(漢字のユーザーが選択した)のためではなく、中間のピンイン入力のためにそれをのみ行う必要があります。だから私はこのペンディング状態を検出する必要があります。

答えて

24

最後にそれを得ました。 Pinyinのような入力方法はMultistage Text Inputと呼ばれます。第1段階はMarkedと呼ばれ、第2段階はCommittedと呼ばれます。 ?それはMarked段階にあるかどうかを決定するために、1はUITextInput議定書のmarkedTextRangeプロパティ問い合わせる必要があります。

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

有什么办法禁止「联想」功能谢谢 –

+0

こんにちは、あなたはどこ入力しても文字があった場合に検出するために、知ってましたか?私は 'UITextViewDelegate'の' textViewDidChange'、 'NSNotificationCenter'の' UIControlEventEditingChanged'やその他の様々なものを無駄にしようとしました。 –