2016-01-02 13 views
11

मैंने एक कस्टम कीबोर्ड एक्सटेंशन डिज़ाइन किया है और मैं टेक्स्ट को सही तरीके से दर्ज करने में सक्षम हूं। हालांकि, मुझे लगता है कि कैपिटल कीबोर्ड को सक्षम करने के दौरान और लोअरकेस को कब सक्षम किया जा सकता है। यह ज्यादातर इसलिए है क्योंकि निम्न फ़ंक्शंस टेक्स्ट के पहले/बाद में पहले से दर्ज किए गए पहले से सही तरीके से वापस नहीं आते हैं। कभी-कभी वे शून्य वापस आ जाएंगे, कभी-कभी केवल आखिरी कुछ पात्र आदि। कई बार इन तरीकों को भी बुलाया नहीं जाता है।आईओएस कस्टम कीबोर्ड एक्सटेंशन ऑटो कैपिटलाइजेशन

- (void)textWillChange:(id<UITextInput>)textInput 

- (void)textDidChange:(id<UITextInput>)textInput 

मैं निम्न परिदृश्यों पता लगा है जब मैं अपने बड़े कुंजीपटल सक्षम करने की आवश्यकता है:

  1. पाठ की लंबाई = 0 या नहीं के बराबर
  2. जब अवधि में प्रवेश किया है, मैं एक जोड़ने की जरूरत अंतरिक्ष और अपरकेस कीबोर्ड
  3. जब कर्सर को उस स्थान पर रखा जाता है जहां कर्सर से पहले वर्ण या तो एक अवधि या एक स्थान होता है और इससे पहले एक अवधि होती है।
  4. उपयोगकर्ता पूरे पाठ "सभी का चयन करें" चयनित जब
  5. उपयोगकर्ता पूरे पाठ का चयन किया और सभी
  6. जब उपयोगकर्ता backspaces और नए चरित्र को नष्ट कर दिया जब से पहले कर्सर या तो एक अवधि या एक जगह नहीं है और इससे पहले कि है कि एक अवधि है ।
  7. जब उपयोगकर्ता कर्सर से पहले पाठ और चरित्र चिपकाता है तो या तो एक अवधि या एक स्थान होता है और इससे पहले एक अवधि होती है।

यदि उपर्युक्त संभव है, तो क्या अंतिम बार "संपूर्ण" शब्द भी प्राप्त करना संभव है जिसे मैं पूर्वानुमानित टाइपिंग के लिए शब्दकोश खोजों के लिए उपयोग कर सकता हूं?

मैं सेब दस्तावेज़ जहां यह कहा गया है कि उपयोगकर्ताओं को उम्मीद स्वतः अक्षर बड़े पढ़ लिया है, तो मुझे यकीन है यह संभव हो जाना चाहिए

https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/Keyboard.html

+0

क्या आपको इसके लिए कोई समाधान मिला? – Sekhar

उत्तर

2

E.G. टेक्स्टफिल्ड को आपके UITextField इंस्टेंस का नाम दिया जा रहा है। शुरू करने के बाद इसे रखो।

textField.autocaptializationType = UITextAutocapitalizationTypeSentences

है कि आप उदाहरणों आप का उल्लेख के सभी बड़े अक्षरों में देना चाहिए।

अपने कस्टम कीबोर्ड को UITextInputTraits प्रोटोकॉल को अपनाने के लिए ठीक है, निम्न कार्य करें।

@interface MyCustomKeyboard : UITextInput <UITextInputTraits> //Now adopts the UITextInputTraits protocol. 

- (instancetype)init { 
    self = super.init; 

    if(self) { 
     //Here you can set the properties that come with the protocol 
     self.autocapitilizationType = UIAutocapitalizationTypeSentences; 

     } 
} 
+0

मैं UIInputText उदाहरण कैसे प्राप्त करूं? मुझे यह कहीं भी नहीं दिख रहा है :( –

+0

ओह मुझे लगता है कि आप कुछ पर हैं! मुझे 'UITextInput' के बारे में और अधिक पढ़ने का प्रयास करें, जिस पाठ ने विधि को बदल दिया है और देखें कि पाठ खोजने का कोई तरीका है या नहीं। आप के लिए! –

+0

कुंजीपटल एक्सटेंशन ऐप्स बनाने में एक्सकोड के साथ सबसे बड़ी समस्या यह है कि स्लोग और ब्रेक पॉइंट डिवाइस के साथ काम नहीं करते हैं। सिम्युलेटर –

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