У меня есть 8 текстовых полей в табличном представлении. Мне нужно ввести данные в эти текстовые поля в портретном и альбомном режимах. некоторые текстовые поля находятся на обратной стороне клавиатуры. Я не могу ввести данные в эти текстовые поля.
Я сделал в портретном режиме с помощью уведомления willShowKeyBoard и работает нормально. Но, то же самое я применил к ландшафтному режиму, но он не работает нормально. Как переместить табличное представление вверх для ввода данных в текстовые поля?
(void) клавиатураWillShow: (NSNotification *) уведомление
{
if ([NameField isFirstResponder] && myView.frame.origin.y >= 0)
{
}
else if([credentialField isFirstResponder] && myView.frame.origin.y >=0)
{
}
else if([specialityField isFirstResponder] && myView.frame.origin.y >=0)
{
}
else if([streetField isFirstResponder] && myView.frame.origin.y >=0)
{
[self setViewMovedUp:YES];
}
else if([cityField isFirstResponder] && myView.frame.origin.y >=0)
{
[self setViewMovedUp:YES];
}
else if([stateField isFirstResponder] && myView.frame.origin.y >=0)
{
[self setViewMovedUp:YES];
}
else if([zipcodeField isFirstResponder] && myView.frame.origin.y >=0)
{
[self setViewMovedUp:YES];
}
}
- (Недействительными) setViewMovedUp: (BOOL) movedUp
{
[UIView beginAnimations: nil context: NULL];
[UIView setAnimationDuration: 0,5]; // если вы хотите увеличить вид
CGRect rect = myView.frame;
если (MoveUp)
{
rect.origin.y = rect.origin.y - kOFFSET_FOR_KEYBOARD1;
rect.size.height = rect.size.height + kOFFSET_FOR_KEYBOARD1;
}
еще
{
rect.origin.y = rect.origin.y + kOFFSET_FOR_KEYBOARD1;
rect.size.height = rect.size.height - kOFFSET_FOR_KEYBOARD1;
}
myView.frame=rect;
[UIView commitAnimations];
}