2011-03-16 89 views
5

我的應用程序需要知道外部鍵盤連接或否。我怎麼能知道這一點?請不要私人API。 :)如何檢測objective-c中的外部鍵盤連接?

+0

是它與mac os x或ios相關嗎?請重新提出您的問題。 – Eimantas 2011-03-16 10:26:18

+0

這是用於iOS的。 – Rizki 2011-03-17 02:11:16

+0

[如何可靠地檢測iOS 9上是否連接了外部鍵盤?](https://stackoverflow.com/questions/31991873/how-to-reliably-detect-if-an-external-keyboard-is -connected-on-ios-9) – 2017-10-09 19:16:16

回答

0

如果這是與iOS相關的,我不確定你爲什麼要檢測到這一點,因爲硬件鍵盤的作用與軟件鍵盤完全相同(除了一些額外的聲音,亮度等快捷鍵除外)。無論如何你的應用程序不應該使用)。

如果您正在考慮使用屏幕空間,那麼軟件鍵盤在顯示或隱藏時仍會發送通知,以便您可以對其進行響應。例如,假設您有軟件鍵盤,然後連接外部鍵盤。軟件鍵盤將隱藏,並將張貼UIKeyboardWillHideNotification。所以你可以對此作出迴應。

+1

我不知道你的應用程序中是否可以檢測到使用UIKeyBoardWillHideNotification,因爲在我的應用程序中,當我連接外部鍵盤時,應用程序可以調用UIKeyboardWillShowNotification,但不能調用UIKeyboardWillHideNotification。但是謝謝你的迴應James。 :) – Rizki 2011-03-24 03:13:06

+5

你想檢測這一點的一個原因是如果你使用InputAccessoryView,並且不希望顯示屏幕鍵盤沒有被顯示。 – 2011-05-03 00:58:53

-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 Notification將不會被調用。