2015-01-25 11 views
8

Sono consapevole che posso ottenere l'altezza UIKeyboard da UIKeyboardFrameEndUserInfoKey sulle notifiche KeyboardWillShow e keyboardDidShow attivate quando diventa un primo risponditore.iOS iPhone - ottieni UIKeyboard height PRIMA di keyboardWillShow

TUTTAVIA, mi piacerebbe conoscere l'altezza prevista di una tastiera prima di questi eventi, così posso configurare alcuni elementi di design a viewDidLoad di un controller di visualizzazione.

Poiché i dispositivi stanno cambiando e la nuova barra di correzione degli incantesimi cambia l'altezza della tastiera NON desidero codificare l'altezza.

Qualcuno sa come ottenere l'altezza prevista dalla tastiera tenendo in considerazione se ha auto-corretto o non ecc.?

+0

Che cosa esattamente si fa ne hai bisogno? Sii specifico perché quasi certamente vuoi adottare un approccio diverso. – Wain

+0

Nota la parte della mia domanda che dice "Mi piacerebbe conoscere l'altezza prevista di una tastiera prima di questi eventi, così posso configurare alcuni elementi di design a viewDidLoad di un controller di visualizzazione". Per espandere su questo: ho elementi che sono disposti in base all'altezza della tastiera ma non in risposta al suo essere sollevato. – Zigglzworth

+2

Non puoi sapere in anticipo. L'altezza della tastiera potrebbe essere diversa per ogni campo di testo o visualizzazione di testo sullo schermo. Uno potrebbe avere un 'inputAccessoryView' e un altro potrebbe non. – rmaddy

risposta

0

È possibile farlo dal seguente senso:

- (void)viewDidLoad { 
[super viewDidLoad]; 
[self initializeTextView]; 

} - (void) initializeTextView {

// Listen for keyboard appearances and disappearances 
[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(keyboardDidShow:) 
              name:UIKeyboardDidShowNotification 
              object:nil]; 

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(keyboardDidHide:) 
              name:UIKeyboardDidHideNotification 
              object:nil]; 

myColoredTextview = [[UITextView alloc]initWithFrame:CGRectMake(0, 20, 300, 100)]; 
myColoredTextview.delegate = self; 
[self.view addSubview:myColoredTextview]; 
myColoredTextview.backgroundColor = [UIColor lightGrayColor]; 
} 

- (void)keyboardDidShow: (NSNotification *) notif{ 
// Do something here 
NSLog(@"show:%@",notif); 
NSDictionary *userInfo = [notif valueForKey:@"userInfo"]; 
CGRect kbFrame = [[userInfo objectForKey:@"UIKeyboardFrameBeginUserInfoKey"] CGRectValue]; 
NSLog(@"keboardHeight:%f",kbFrame.size.height); 

}

- (void)keyboardDidHide: (NSNotification *) notif{ 
// Do something here 
NSLog(@"hide:%@",notif); 

}

Problemi correlati