2014-09-17 6 views
5

Mam nas, którzy usiłują wyświetlić się nad klawiaturą i nie powinni się ruszać po otwarciu klawiatury.wykrywanie klawiatury klawiaturowej iOS 8 jest otwarte lub zamknięte bez powiadomienia

Mogę dostosować miejsce, w którym jest wyświetlany, ale z klawiaturą szybkiego klawisza nie mogę ustalić wysokości klawiatury, chyba że wiem, czy typ szybki jest otwarty, czy zamknięty. Czy istnieje sposób, aby to ustalić?

+0

spojrzeć na mojego roztworu w linku: http://stackoverflow.com/questions/26213681/ios-8- keyboard-hides-my-textview/26226732 # 26226732 –

Odpowiedz

8

Powinieneś używać powiadomienia keyboardWillShow: do regulacji innych ramek widoków.

Powiadomienie jest wysyłane do keyboardWillShow: nie tylko na becomeFirstResponder dla textView/Field, ale także wtedy, gdy użytkownik pokazuje/ukrywa klawiaturę szybkiego pisania.

Po opublikowaniu powiadomienia keyboardWillShow: ramka klawiatury może zostać przechwycona przez obiekt UIKeyboardFrameEndUserInfoKey w obiekcie powiadomienia.

Przykładem textView że dostosowuje swoją ramę opartą na klawiaturze:

- (void)keyboardWillShow:(NSNotification *)notification 
{ 
    CGRect keyboardRect = [[[notification userInfo] valueForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; 
    NSTimeInterval duration = [[[notification userInfo] objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue]; 
    UIViewAnimationCurve curve = [[[notification userInfo] objectForKey:UIKeyboardAnimationCurveUserInfoKey] intValue]; 

    [UIView animateWithDuration:duration animations:^{ 

    [UIView setAnimationCurve:curve]; 
    self.textViewVisualEffectView.frame = CGRectMake(self.textViewVisualEffectView.origin.x, self.view.height - keyboardRect.size.height - self.textViewVisualEffectView.height, self.textViewVisualEffectView.width, self.textViewVisualEffectView.height); 

    } completion:^(BOOL finished) { 

    }]; 
} 
+0

w tym momencie w moim kodzie klawiatura nigdy się nie wyświetlała i dlatego nie ma powiadomienia. – madmik3

+0

Nie odpowiada to pytaniu pytającego o obszar szybkiego tekstu nad klawiaturą. Tak, rozmiar klawiatury jest przechwytywany przy uruchomieniu, ale obszar szybkiego wyboru nie jest uwzględniony w uruchomieniu. Tak więc, gdy użytkownik rozpoczyna wprowadzanie tekstu, wyświetlany jest obszar szybkiego wyboru. Obszar szybkiego wyboru ukrywa część ekranu. –

Powiązane problemy