2015-01-14 28 views
2

我按照這裏的說明使用iOS鍵盤調整視圖。 https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html調整iOS硬件鍵盤的視圖框架

這不適用於硬件鍵盤。當文本視圖處於活動狀態時,iOS鍵盤未顯示,但示例代碼仍然返回鍵盤的全部高度。在我的情況下,屏幕上只顯示輸入附件視圖。

我該如何檢測這種情況,並只爲輸入附件視圖調整視圖?

+0

可能的重複[如何檢測外部鍵盤是否存在於iPad?](http://stackoverflow.com/questions/2893267/how-can-i-detect-if-an-外部鍵盤是至今上-AN-的ipad) – Rivera

回答

0

遇到同樣的問題。 看起來像iOS鍵盤已完全實例化,並且在連接硬件鍵盤時剛剛移出視圖部分。因此鍵盤的大小是正確的。這只是沒有完全顯示。

在檢查通知後,我通過自己計算可見鍵盤高度來解決這個問題。 在我的示例中,我正在監聽UIKeyboardWillShowNotification,UIKeyboardWillChangeFrameNotification和UIKeyboardWillHideNotification。

-(void)keyboardMessage:(NSNotification*)notification { 
     NSDictionary *userInfo = notification.userInfo; 
     CGFloat duration = [userInfo[@"UIKeyboardAnimationDurationUserInfoKey"] floatValue]; 
     NSValue *value = userInfo[@"UIKeyboardFrameEndUserInfoKey"]; 
     CGRect frame = [value CGRectValue]; 
     [UIView animateWithDuration:duration animations:^{ 
      self.lowerContraint.constant = self.view.frame.size.height - frame.origin.y;; 
      [self.view needsUpdateConstraints]; 
      [self.view layoutIfNeeded]; 
     }]; 
    }