2014-09-23 3 views
7

У меня есть пользовательский интерфейс, который требует некоторой регулировки положения при отображении клавиатуры.iOS8 UIKeyboardWillShowNotification Третья высота клавиатуры

Следующая используется для обнаружения, когда клавиатура отображается:

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(keyboardWillShow:) 
              name:UIKeyboardWillShowNotification 
              object:nil]; 

Примечание: Я пробовал как с UIKeyboardWillShowNotification и UIKeyboardDidShowNotification

- (void)keyboardWillShow:(NSNotification *)n { 
    if (isKeyboardShowing) 
    return; 

NSDictionary* userInfo = [n userInfo]; 

// get the size of the keyboard 
CGSize keyboardSize = [[userInfo objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; 


// Animate keyboard shift 
[self.view layoutIfNeeded]; 

[UIView animateWithDuration:0.2f animations:^{ 
    // some animation here 
} completion:^(BOOL finished) { 
    if (finished) 
     isKeyboardShowing = YES; 
}]; 

Для пользовательских клавиатур возвращается размер клавиатуры {320 , 0}. Поскольку теперь клавиатура может иметь разную высоту, у меня не может быть статических значений для изменения пользовательского интерфейса при представлении клавиатуры.

Это проблема с ios8? и есть ли какие-либо другие методы для динамического повышения высоты клавиатуры?

Edit: Это USERINFO Dict:

{name = UIKeyboardDidShowNotification; userInfo = { 
    UIKeyboardAnimationCurveUserInfoKey = 7; 
    UIKeyboardAnimationDurationUserInfoKey = "0.25"; 
    UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {320, 0}}"; 
    UIKeyboardCenterBeginUserInfoKey = "NSPoint: {160, 568}"; 
    UIKeyboardCenterEndUserInfoKey = "NSPoint: {160, 568}"; 
    UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 568}, {320, 0}}"; 
    UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, 568}, {320, 0}}"; 
}} 

Спасибо заранее.

ответ

11

Использование

CGSize keyboardSize = [[userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size; 

, чтобы получить фактический размер клавиатуры

Смежные вопросы