2014-09-29 17 views
8

के लिए कस्टम कीबोर्ड में कीबोर्ड प्रकार परिवर्तनों का पता लगाएं मैं वर्तमान में एक आईओएस 8 कस्टम कीबोर्ड एक्सटेंशन बना रहा हूं, और मैं यह निर्धारित करने का एक तरीका ढूंढ रहा हूं कि उपयोगकर्ता मेरे लेआउट को बदलने के लिए किसी अन्य इनपुट पर कब स्विच करते हैं।आईओएस 8

उदाहरण के लिए, जब एक उपयोगकर्ता प्रकार UIKeyboardTypeEmailAddress के साथ एक UITextField का चयन करता है मैं एक कस्टम कुंजीपटल पेश करने के लिए करना चाहते हैं, और जब उपयोगकर्ता प्रकार UIKeyboardTypeDecimalPad के साथ एक और UITextField का चयन करता है, मैं इसे नोटिस, और अपने कीबोर्ड के लेआउट को अपडेट करना चाहते। कुंजीपटल लेआउट को अपडेट करने के लिए कीबोर्ड प्रकार बदलते समय किसी को अधिसूचित कैसे किया जाता है?

उत्तर

8

आप textDidChange में कीबोर्ड प्रकार में परिवर्तनों का पता लगा सकते हैं। आपको UITextDocumentProxy प्राप्त करने की आवश्यकता है, फिर प्रॉक्सी के keyboardType देखें। यदि यह एक कीबोर्ड प्रकार है जिसे आप समर्थन देना चाहते हैं, तो आप उपयुक्त यूआई प्रस्तुत कर सकते हैं। उदाहरण के लिए, यह पता चलता है कि ईमेल कीबोर्ड कब प्रदर्शित किया जाना चाहिए:

override func textDidChange(textInput: UITextInput) { 
    // Called when the document context is changed - theme or keyboard type changes 

    var proxy = self.textDocumentProxy as UITextDocumentProxy 
    if proxy.keyboardType == UIKeyboardType.EmailAddress { 
     //add code here to display email input keyboard 
    } 
} 
+0

जब कीबोर्ड प्रकार बदल रहा है या जब उपयोगकर्ता 123/एबीसी बटन दबाता है तो यह कॉल नहीं कर रहा है –