На самом деле у меня есть текстовое поле в шестом разделе табличного представления и текстовое представление в одиннадцатом разделе текстового обзора. Моя проблема в том, что когда я нажимаю на текстовое поле шестого раздела, клавиатура закрывает текстовое поле, и то же самое было происходит с textview.for, что я использовал NSNotificationCenters.
и я написал код как:
- (Недействительными) viewWillAppear: (BOOL) анимированный {
tableView.tableFooterView=nil;
[self reloadView];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification object:self.view.window];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification object:self.view.window];
[tableView reloadData];
}
- (Недействительными) setViewMovedUp: (BOOL) movedUp {
[UIView beginAnimations: nil context: NULL];
[UIView setAnimationDuration: 0,5]; // если вы хотите увеличить вид
CGRect rect = mview.frame;
если (MoveUp)
{
rect.origin.y = rect.origin.y - kOFFSET_FOR_KEYBOARD;
rect.size.height = rect.size.height + kOFFSET_FOR_KEYBOARD;
}
еще
{
rect.origin.y = rect.origin.y + kOFFSET_FOR_KEYBOARD;
rect.size.height = rect.size.height - kOFFSET_FOR_KEYBOARD;
}
mview.frame = rect;
[UIView commitAnimations];
}
(void) клавиатураWillShow: (NSNotification *) уведомление
{
// printf ("\ n Keyboard Will SHOW");
// теперь будет показана клавиатура. в зависимости от того, какое текстовое поле активно, двигайтесь вверх или вниз соответственно
if ([notesTextView isFirstResponder] && mview.frame.origin.y> = 0)
{
[self setViewMovedUp: YES];
}
иначе если (! [notesTextView isFirstResponder] && mview.frame.origin.y
else if ([wineryTextField isFirstResponder] && mview.frame.origin.y> = 0)
{
[self setViewMovedUp: YES];
}
иначе если (! [wineryTextField isFirstResponder] && mview.frame.origin.y <0)
{
[self setViewMovedUp: NO];
} </p>
}
(void) клавиатураWillHide: (NSNotification *) уведомление
{
// printf ("\ n Keyboard Hide");
// теперь будет показана клавиатура. в зависимости от того, какое текстовое поле активно, двигайтесь вверх или вниз соответственно,
if ([notesTextView isFirstResponder] && mview.frame.origin.y> = 0)
{
[self setViewMovedUp: YES];
}
иначе если (! [notesTextView isFirstResponder] && mview.frame.origin.y <0)
{
[self setViewMovedUp: NO];
} </p>
else if ([wineryTextField isFirstResponder] && mview.frame.origin.y> = 0)
{
[self setViewMovedUp: YES];
}
иначе если (! [wineryTextField isFirstResponder] && mview.frame.origin.y <0)
{
[self setViewMovedUp: NO];
} </p>
}
(BOOL) textView: (UITextView *) textView shouldChangeTextInRange: (NSRange) диапазон
замещающий текст: (NSString *) текст
{
if ([text isEqualToString: @ "\ n"]) {
//event.eventNotes = notesTextView.text;
if(textView==notesTextView)
{
//[self setViewMovedUp:NO];
[textView resignFirstResponder];
}
return NO;
}
возврат ДА;
}
Выше приведен код, который я написал для прокрутки представления. Но проблема в том, что когда я нажимаю на текстовое поле, оно прокручивается вниз, а не прокручивается вверх. То же самое происходило с textView. Проблема возникала, когда Я перехожу к другому контроллеру, возвращаюсь и нажимаю на текстовое поле или текстовое представление.
Пожалуйста, дайте идеальное решение для моей проблемы.
Спасибо всем вам, ребята .....