我有一个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。
任何帮助将不胜感激。
答案 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
}
}