如何检测蓝牙键盘何时与ipad断开连接

时间:2014-01-31 21:41:09

标签: ios objective-c bluetooth uitextfield

我有一个UItableView,当屏幕上显示UIKeyboard时,我缩小了尺寸,但是有可能使用蓝牙键盘,我知道当蓝牙键盘存在时 UIKeyboardWillShowNotification 不会被召唤。

所以我正在做的是在蓝牙键盘连接时打开和关闭bool但是我不知道如何检测UIKeyboard何时断开连接,这是我想要帮助的。

这是我检测蓝牙键盘的代码。

- (void) viewdidload
//..
blueToothKeyBoardConnected = NO;
//..

- (void)UIKeyboardWillShowNotification:(NSNotification *)aNotification {

    blueToothKeyBoardConnected = YES;

}

- (BOOL)textFieldShouldBeginEditing:(UITextField*)textfield {

    // only change height if bluetoothkeyboard not present.
    if (blueToothKeyBoardConnected == YES) {
        int height = self.finishingTableView.frame.size.height;
         self.finishingTableView.frame= CGRectMake(self.finishingTableView.frame.origin.x, self.finishingTableView.frame.origin.y, self.finishingTableView.frame.size.width, 307);
    }

    //..

有效地我想知道当键盘被移除时我应该将布尔值设置为NO。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我检查了键盘的高度以便检测

 -(void) keyboardWillAppear:(NSNotification *) notification
    {

        [touchView setHidden:TRUE];


        NSDictionary *userInfo = [notification userInfo];

        NSLog(@"Keyboard Dict-%@",userInfo);

        NSValue* aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];

        CGRect keyboardRect = [aValue CGRectValue];

        if (keyboardRect.origin.x<0 || keyboardRect.origin.x>710) {
          // connected
            return;
        }
        else {
             // disconnected
        }

    }