как проверить, находится ли вид за клавиатурой на iphone - PullRequest
0 голосов
/ 22 июня 2011

в моем приложении у меня есть куча текстовых меток и текстовых представлений.Иногда текстовое представление находится под клавиатурой.У меня вопрос, есть ли способ проверить, находится ли текстовое представление за клавиатурой, чтобы переместить его вверх.Я уже знаю, как перемещать представления вверх, и я знаю об уведомлениях клавиатурыWillAppear, но я не знаю, как проверить, находится ли представление позади клавиатуры.Дело в том, что я не хочу перемещать текстовое представление, если оно не находится под кейбордом.Как этого добиться?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 22 июня 2011

Я бы сделал проверку для первого респондента, как показано выше

[text isFirstResponder];

тогда я бы проверил, являются ли границы границ текстового поля меньше 215 (потому что я думаю, что это максимальная высота клавиатуры), и приспособился бы оттуда. так что все вместе это выглядит так:

if([text isFirstResponder]){
    if(text.bounds.y > 215){
       text.bounds.y = CGPointMake(text.bounds.y-(text.bounds.y-215));
    }
}
0 голосов
/ 22 июня 2011

Я думаю, что единственный способ убедиться в этом - проверить каждый UITextField и UITextView, если он возвращает YES для

[_text isFirstResponder];

Если какой-либо UITextField или UITextView является First Responder, чем это означает, что клавиатура находится нанижняя часть экрана.

Вы можете увидеть, что клавиатура появится, слушая события UITextFieldDelegate и UITextViewDelegate ShouldBeginEditing: для UITextField это:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;// return NO to disallow editing.

, а для UITextView это:

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView;

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...