当用户可以使用键盘时,通知UIKeyboardWillShowNotification
会正确广播。
发生这种情况时,我调用了我的委托方法,但我怎么知道它是否是蓝牙键盘?
谢谢
更新
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification
object:nil];
当用户可以使用键盘时,通知UIKeyboardWillShowNotification
会正确广播。
发生这种情况时,我调用了我的委托方法,但我怎么知道它是否是蓝牙键盘?
谢谢
更新
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification
object:nil];
如果存在蓝牙键盘,则不会广播该通知(UIKeyboardWillShowNotification),除非您有 inputAccessoryView。事实上,这是唯一知道的方法。如果您使用它来调整软件键盘的视图,您应该根据此通知进行处理,您将永远没问题。
否则,您可以在通知的 userInfo 属性中检查键盘大小差异。
该信息在 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;