2015-09-08 3 views
0

Я получаю высоту клавиатуры от оповещения с кодомПолучение высоты клавиатуры от оповещения

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

я использую его, чтобы представить какой-либо другой вид и высоту такие же, как высоту клавиатуры. Для этого я создаю temp textField и хватаю от него высоту клавиатуры. Я использую код:

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

И затем я получаю значение высоты. Его значение равно 253. Но тогда я получаю высоту от реального textField его 216. Мне нужно получить значение 216 в уведомлении, отправляемом из текстового поля temp. Как я могу его получить?

+0

Прошу вас пояснить, пытаетесь ли вы добавить текстовое поле temp с той же высотой, что и клавиатура, чтобы добавить его в свой вид? –

ответ

0

216 - это высота iOS, встроенная в клавиатуру без QuickType. 253 с этим.

Так что в вашем случае вам нужно установить autocorrectionType на no.

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

Я не знаю, что вы пытаетесь сделать с высотой, но я не могу уверен, что это лучший способ, чтобы получить высоту клавиатуры.

+0

спасибо, он работает. Мне нужно получить высоту клавиатуры, прежде чем появится пользовательское представление, чтобы установить его высоту как высоту клавиатуры –

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