2015-09-08 77 views
0

我從通知讓鍵盤高度的代碼獲取鍵盤高度,從通知

CGFloat height = [[notification.userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].height; 

我用它展示了其他一些視圖和它的高度一樣的鍵盤的高度。 爲此,我創建臨時文本字段並從中獲取鍵盤高度。我使用代碼:

UITextField *tempTextField = [[UITextField alloc]init]; 
[[[[UIApplication sharedApplication] windows] lastObject] addSubview:tempTextField]; 
[tempTextField becomeFirstResponder]; 
[tempTextField resignFirstResponder]; 
[tempTextField removeFromSuperview]; 

然後我得到身高值。它等於253.但是,我從真正的textField獲得了高度216。我需要從temp textfield發送的通知中獲得216值。我怎麼才能得到它?

+0

請自己清楚,你是否想要添加一個與鍵盤高度相同的臨時文本框以將其添加到視圖中? –

回答

0

216是沒有QuickType的鍵盤內置iOS的高度。 253是與它。

所以在你的情況下,你必須設置autocorrectionType爲no。

UITextField *tempTextField = [[UITextField alloc]init]; 
tempTextField.autocorrectionType = UITextAutocorrectionTypeNo; 
[[[[UIApplication sharedApplication] windows] lastObject] addSubview:tempTextField]; 
[tempTextField becomeFirstResponder]; 
[tempTextField resignFirstResponder]; 
[tempTextField removeFromSuperview]; 

我不知道你正在嘗試用高度來完成,但我不能確定這是獲得鍵盤的高度的最佳方式。

+0

謝謝,它的工作原理。在我的自定義視圖出現將其設置爲鍵盤高度之前,我需要獲得鍵盤的高度 –