0

当用户可以使用键盘时,通知UIKeyboardWillShowNotification会正确广播。

发生这种情况时,我调用了我的委托方法,但我怎么知道它是否是蓝牙键盘?

谢谢

更新

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

2 回答 2

0

如果存在蓝牙键盘,则不会广播该通知(UIKeyboardWillShowNotification),除非您有 inputAccessoryView。事实上,这是唯一知道的方法。如果您使用它来调整软件键盘的视图,您应该根据此通知进行处理,您将永远没问题。

否则,您可以在通知的 userInfo 属性中检查键盘大小差异。

于 2012-11-13T12:58:34.473 回答
0

该信息在 userInfo 字典中可用,它只需要一些操作即可获得您想要的。

NSDictionary *userInfo = [aNotification userInfo];
CGRect startKeyboardRect  = [[userInfo objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue];
CGRect finishKeyboardRect = [[userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];

startKeyboardRect   = [self.view convertRect:startKeyboardRect fromView:self.view.window];
finishKeyboardRect  = [self.view convertRect:finishKeyboardRect  fromView:self.view.window];

CGFloat vertShuffle = startKeyboardRect.origin.y - finishKeyboardRect.origin.y;
于 2013-05-27T01:26:15.603 回答