2014-08-05 2 views
0

Работы вокруг:Проверить UITextField видно, но за клавиатуру

UIViewController содержит UITableview с пользовательской ячейкой. Каждая ячейка содержит cusom UIView с UITextField.

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

Проблема:

Здесь содержание UITableView динамичен, ее решили среду выполнения, которая ячейка содержит UITextField. Я пробовал много решений для клавиш вверх/вниз. Но все же остаются некоторые проблемы.

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

Есть ли способ узнать, что UITextField, который отвечает за внешний вид клавиатуры, находится за клавиатурой или над клавиатурой?

Любой лучший подход?

Пожалуйста, добавьте комментарий, если вопрос неясен.

+1

попробовать это: HTTP: // stackoverflow.com/questions/15036519/scroll-uitextfield-above-keyboard-in-a-uitableviewcell-on-a-regular-uiviewcontro –

ответ

1

на основе текущего кадра TextField у позиции вы можете проверить, что это его за клавиатурой или не используя

-(void)textFieldDidBeginEditing:(UITextField *)textField { 

    CGPoint textFieldPosition = [textField convertPoint:CGPointZero toView:self.tableView]; 
} 

теперь проверить значение у и переместить UIView на основе значения Y ..

+0

Ваш код мне тоже помогает :) спасибо ma N – Kampai

1

Вместо того, чтобы проверять все это, вы можете перерисовать таблицуView, когда клавиатура видна.

В viewDidLoad() добавить этот

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardShow) name:UIKeyboardDidShowNotification object:nil]; 

в приемнике установлен новый кадр

- (void)keyboardShow{ 
     [tableView setFrame:newFrame] 
    } 

снова в name:UIKeyboardDidHideNotification сброса на начальный кадр, когда клавиатура не существует

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