2011-03-16 10 views
5

मेरे आवेदन को जानने की आवश्यकता है बाहरी कीबोर्ड कनेक्ट या नहीं। मैं यह कैसे जान सकता हूं? कृपया कोई निजी एपीआई नहीं। :)उद्देश्य-सी में बाहरी कीबोर्ड कनेक्टिफिकेशन का पता कैसे लगाएं?

+0

क्या यह मैक ओएस एक्स या आईओएस संबंधित है? कृपया आपको प्रश्न पूछें। – Eimantas

+0

यह आईओएस के लिए है। – Rizki

+0

संभावित डुप्लिकेट [आईओएस 9 पर बाहरी कीबोर्ड कनेक्ट होने पर विश्वसनीय रूप से पता कैसे लगाया जाए?] (Https://stackoverflow.com/questions/31991873/how-to-reliably-detect-if-an-external-keyboard-is -connected-on-ios-9) –

उत्तर

0

यदि यह आईओएस संबंधित है, तो मुझे यकीन नहीं है कि आप इसे क्यों पहचानना चाहते हैं क्योंकि हार्डवेयर कीबोर्ड वास्तव में सॉफ़्टवेयर कीबोर्ड के समान कार्य करता है (ध्वनि, चमक आदि के लिए कुछ अतिरिक्त शॉर्टकट को छोड़कर। जो आपके ऐप को वैसे भी उपयोग नहीं करना चाहिए)।

यदि आप स्क्रीन स्पेस पर विचार कर रहे हैं, तो सॉफ़्टवेयर कीबोर्ड तब भी प्रदर्शित होगा जब यह प्रदर्शित होता है या जब यह छुपाया जाता है, तो आप उनको जवाब दे सकते हैं। उदाहरण के लिए, कहें कि आपके पास सॉफ़्टवेयर कीबोर्ड है और फिर आप अपने बाहरी कीबोर्ड को कनेक्ट करते हैं। सॉफ़्टवेयर कीबोर्ड छुपाएगा, और UIKeyboardWillHideNotification पोस्ट करेगा। तो आप इसका जवाब दे सकते हैं।

+1

मुझे नहीं पता कि आपके आवेदन में आप UIKeyBoardWillHideNotification का उपयोग कर सकते हैं क्योंकि जब मैं बाहरी कीबोर्ड कनेक्ट करता हूं तो मेरे एप्लिकेशन में एप्लिकेशन UIKeyboardWillShowNotification को कॉल कर सकता है लेकिन UIKeyboardWillHideNotification को कॉल नहीं कर सकता है। लेकिन आपकी प्रतिक्रिया जेम्स के लिए धन्यवाद। :) – Rizki

+5

एक कारण यह है कि आप इसका पता लगाना चाहते हैं यदि आप InputAccessoryView का उपयोग कर रहे हैं और यह नहीं दिखाना चाहते कि ऑनस्क्रीन कीबोर्ड नहीं दिखाया जा रहा है या नहीं। –

-1

पहले रजिस्टर अधिसूचना:

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; 
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; 

तब प्राप्त:

-(void)keyboardWillHide:(NSNotification *)_notification { 
    NSLog(@"%@",[_notification infoDict]); 
} 
-(void)keyboardWillShow:(NSNotification *)_notification { 
    NSLog(@"%@",[_notification infoDict]); 
} 

यह सिर्फ जब कुंजीपटल अंदर showned किया जाएगा बुलाया जाएगा और कोई बाहरी कीबोर्ड जुड़ा हुआ है! यदि बाहरी कीबोर्ड संलग्न है तो WillShow अधिसूचना नहीं कहा जाएगा।

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