2012-10-01 13 views
7

यदि उपयोगकर्ता चीनी पिनयिन जैसे इनपुट विधि का उपयोग कर UITextView में इनपुट कर रहा है, तो वहां एक ऐसा राज्य है जहां पिनयिन पहले से ही टेक्स्ट व्यू में प्रदर्शित होता है लेकिन उपयोगकर्ता अभी भी अंतिम चीनी वर्ण चुनने के लिए अभी भी है। एक स्क्रीनशॉट और अधिक स्पष्ट हो जाएगा:उपयोगकर्ता का पता लगाने के लिए कैसे एक इनपुट विधि के साथ मध्य-मार्ग इनपुट है?

enter image description here

मैं उपयोगकर्ता के लिए कुछ पाठ पूरा होने के करना चाहते हैं, लेकिन केवल वास्तविक इनपुट (चीनी अक्षरों उपयोगकर्ता चुनता है), लेकिन मध्यवर्ती पिनयिन इनपुट के लिए नहीं करने के लिए यह करना चाहिए । तो मुझे इस लंबित राज्य का पता लगाने की जरूरत है।

उत्तर

24

अंततः इसे मिला। पिनयिन जैसे इनपुट विधियों को Multistage Text Input कहा जाता है। पहले चरण को Marked कहा जाता है, दूसरे चरण को Committed कहा जाता है। चाहे वह Marked चरण में है निर्धारित करने के लिए, एक UITextInput प्रोटोकॉल के markedTextRange संपत्ति क्वेरी चाहिए: 办法 禁止 什么 有

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

"联想" 功能 谢谢 –

+0

हाय, क्या आप जानते हैं जहां पता लगाने के लिए जब वहाँ भी एक चरित्र inputted है? मैंने 'UITextViewDelegate' की 'textViewDidChange',' NSNotificationCenter' की' UIControlEventEditingChanged' और कई अन्य सामानों का कोई फायदा नहीं लिया है .. –

संबंधित मुद्दे