2014-09-17 14 views
5

Ci sono tentativi di visualizzare se stessi sopra la tastiera e non deve spostarsi dopo l'apertura della tastiera.rilevamento della tastiera quicktype di iOS 8 è aperto o chiuso senza notifica

Posso regolare dove viene visualizzato ma con la tastiera quicktype non riesco a determinare l'altezza della tastiera a meno che non sappia se il quicktype è aperto o chiuso. C'è un modo per determinare questo?

+0

Date un'occhiata a mia soluzione nel link: http://stackoverflow.com/questions/26213681/ios-8- tastiera-hides-my-textview/26226732 # 26226732 –

risposta

8

Si dovrebbe usare il keyboardWillShow: notifica per regolare altre cornici di viste.

Una notifica viene inviata a keyboardWillShow: non solo su becomeFirstResponder per un testoView/Field ma anche quando l'utente mostra/nasconde la tastiera di tipo rapido.

volta il keyboardWillShow: segnalazione è stata pubblicata, il telaio della tastiera può essere catturato dal UIKeyboardFrameEndUserInfoKey nell'oggetto notifica.

Un esempio di textView che regola il suo telaio in base alla tastiera:

- (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

a questo punto nel mio codice la tastiera non ha mai mostrato e quindi nessuna notifica. – madmik3

+0

Questo non risponde alla domanda del richiedente riguardo all'area del quicktype sopra la tastiera. Sì, la dimensione della tastiera viene catturata all'avvio, ma l'area quicktype non è inclusa nel lancio. Quindi, quando l'utente inizia a inserire il testo, viene visualizzata l'area quicktype. L'area quicktype nasconde parte dello schermo. –

Problemi correlati