DAKeyboardControl
DAKeyboardControl copied to clipboard
while a UITextView is editing, click to a UITextField, would make a dead loop
I have reviewed the code the problem might be here, see below
- (void)reAssignFirstResponder
{
// Find first responder
UIView *inputView = [self findFirstResponder];
if (inputView != nil) {
// Re assign the focus
// [inputView resignFirstResponder]; // <-- the two lines cause a dead loop
// after commented the above line, it works well on iOS7, iOS5 (I have no other devices)
[inputView becomeFirstResponder];
}
}
and I did a little improvement, in -inputKeyboardWillChangeFrame
, - (void)inputKeyboardWillShow:
,-inputKeyboardWillHide:
we don't need animation if keyboard frame not change, see below
- (void)inputKeyboardWillShow:(NSNotification *)notification
{
CGRect keyboardEndFrameWindow = [notification.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];
CGRect keyboardBeginFrameWindow = [notification.userInfo[UIKeyboardFrameBeginUserInfoKey] CGRectValue];
// if the frame of keyboard doesn't change, we just skip the animation
if (CGRectEqualToRect(keyboardBeginFrameWindow, keyboardEndFrameWindow)) {
self.keyboardActiveView.hidden = NO;
if (self.panning && !self.keyboardPanRecognizer) {
[self setupGestureRecognizer];
}
return;
}