2011-03-16 19 views
5

Uygulamamın bilmesi gereken harici klavye bağlantısı veya no. Bunu bilmek için nasıl yapabilirim? Özel API yok lütfen. :)Nesne-c harici klavye bağlantısı nasıl algılanır?

+0

Mac OS x veya ios ile ilgili mi? lütfen soruları yeniden etiketleyin. – Eimantas

+0

Bu iOS için. – Rizki

+0

Olası kopyası [iOS 9'da harici bir klavyenin bağlanması güvenilir bir şekilde nasıl algılanır?] (Https://stackoverflow.com/questions/31991873/how-to-relike-detect-if-an-external-keyboard-is bağlı-on-ios-9) –

cevap

0

Bu iOS ile ilişkiliyse, donanım klavyesi tıpkı yazılım klavyesiyle tam olarak aynı şekilde çalıştığı için bunu neden belirlemek istediğinizden emin değilim (ses, parlaklık vb. Için birkaç kısayol hariç). uygulamanızın zaten kullanmaması gereken).

Ekran boşluğunu düşünüyorsanız, yazılım klavyesi yine de görüntülendiğinde veya gizlendiğinde bildirimlerini gönderir, böylece bunlara yanıt verebilirsiniz. Örneğin, yazılım klavyesine sahip olduğunuzu ve harici klavyenizi bağladığınızı varsayalım. Yazılım klavyesi gizlenecek ve UIKeyboardWillHideNotification'u yayınlayacaktır. Yani buna cevap verebilirsin.

+1

Uygulamanızın UIKeyBoardWillHideNotification kullanımını algılayabileceğini bilmiyorum çünkü uygulamada harici klavyeyi bağladığımda UIKeyboardWillShowNotification'ı çağırabilir ancak UIKeyboardWillHideNotification'ı çağıramaz. Ama cevabın için teşekkürler James. :) – Rizki

+5

Bunu algılamak için bir neden, InputAccessoryView kullanıyorsanız ve ekran klavyesinin gösterilmediğini göstermesini istemiyorsanız. –

-1

İlk Kayıt Bildirim:

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

almayabilir: Klavyenin iç showned olacak sadece zaman

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

Bu adı verilecek ve hiçbir harici klavye bağlı! Harici klavye eklenmişse WillShow Bildirimi çağrılmayacak.

İlgili konular