En fait, j'ai textfield dans ma sixième section de la tableview et un textview dans la onzième section de la textview.Mon problème est quand je clique sur le texfield de la sixième section le clavier couvre le texte champ et la même chose se passait avec le textview.for que j'ai utilisé NSNotificationCenters. et j'ai écrit le code comme:NSNotification problème pour textfield et textview
- (void) viewWillAppear: (BOOL) animé {
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];
}
- (void) setViewMovedUp: (BOOL) movedUp {
[UIView beginAnimations: nil contexte: NULL]; [UIView setAnimationDuration: 0,5]; // si vous voulez faire glisser la vue vers le haut CGRect rect = mview.frame; if (movedUp) {
rect.origin.y = rect.origin.y - kOFFSET_FOR_KEYBOARD; rect.size.height = rect.size.height + kOFFSET_FOR_KEYBOARD; } sinon { rect.origin.y = rect.origin.y + kOFFSET_FOR_KEYBOARD; rect.size.height = rect.size.height - kOFFSET_FOR_KEYBOARD; } mview.frame = rect;
[UIView commitAnimations];
}
(void) keyboardWillShow: (NSNotification *) {notif // printf ("\ n clavier SHOW"); // le clavier sera affiché maintenant. en fonction pour laquelle textfield est activé, déplacer vers le haut ou vers le bas le point de vue se déplacer de manière appropriée
if ([notesTextView isFirstResponder] & & mview.frame.origin.y> = 0) {
[self setViewMovedUp: OUI]; } else if ([notesTextView isFirstResponder] & & mview.frame.origin.y < 0!) { [auto setViewMovedUp: NO]; }else if ([wineryTextField isFirstResponder] & & mview.frame.origin.y> = 0) {
[auto setViewMovedUp: OUI]; } else if ([wineryTextField isFirstResponder] & & mview.frame.origin.y < 0!) { [auto setViewMovedUp: NO]; }
}
(void) keyboardWillHide: (NSNotification *) {notif // printf ("\ n clavier cacher"); // le clavier sera affiché maintenant.en fonction pour laquelle textfield est activé, déplacer vers le haut ou vers le bas le point de vue se déplacer de manière appropriée
if ([notesTextView isFirstResponder] & & mview.frame.origin.y> = 0) { [self setViewMovedUp: OUI]; } else if ([notesTextView isFirstResponder] & & mview.frame.origin.y < 0!) { [auto setViewMovedUp: NO]; }
else if ([wineryTextField isFirstResponder] & & mview.frame.origin.y> = 0) { [auto setViewMovedUp: OUI]; } else if ([wineryTextField isFirstResponder] & & mview.frame.origin.y < 0!) { [auto setViewMovedUp: NO]; }
}
(BOOL) textView: (UITextView *) textView shouldChangeTextInRange: (NSRange) vont replacementText: (NSString *) texte { if ([texte isEqualToString: @ "\ n"]) {
//event.eventNotes = notesTextView.text; if(textView==notesTextView) { //[self setViewMovedUp:NO]; [textView resignFirstResponder]; } return NO;
}
return YES;
}
(BOOL) textFieldShouldReturn: (UITextField *) textField {
if (textField == wineryTextField) { [auto setViewMovedUp: NO]; [wineryTextField resignFirstResponder]; }}
Ce qui précède est le code que je l'avais écrit pour le Scrolling view.but le problème est quelques fois quand je clique sur le champ de texte, il défiler vers le bas au lieu de défilement up.The même a été happed avec le textView.the problème devenait quand je navigue vers un autre contrôleur et reviens et clique sur pour texfield ou textview plus léger.
Pls tout donner une solution parfaite pour mon problème.
Merci à tous les gars u .....