NSTextField et clavier qui disparaà®t...

Bonjour,


 


Dans mon appli, j'ai un NSTextField dans un sectionHeaderView d'une UITableView.


En fonction de ce que j'écris dans ce champ de texte, je voudrais être en mesure d'actualiser le contenu de la UITableView (qui contient donc elle-même le NSTextField).


 


Voici donc comment j'ai implémenté le delegate du champ de texte :


 


/** UITextFieldDelegate */


#pragma mark - UITextFieldDelegate Protocol


 


- (void) textFieldDidBeginEditing: (UITextField *)textField


{


   // Store the scroll position


   _lastScrollPosition = _tableView.contentOffset;


  


   // Display the recipients list


   _displayedView = kRecipientsListView;


   [_tableView reloadData];


}


 


- (void) textFieldDidEndEditing: (UITextField *)textField


{


   // Display the default view


   _displayedView = kDefaultView;


   [_tableView reloadData];


  


   // Restore the scroll position


   _tableView.contentOffset = _lastScrollPosition;


}


 


(_displayedView permet de spécifier ce qui doit être affiché dans la UITableView)


 


Quand je clique sur le champ de texte, le contenu de la UITableView change comme prévu, le champ de texte passe en mode édition, mais aucun clavier n'apparaà®t...


 


Quand je désactive ces 2 méthodes, le clavier apparaà®t bien.


 


C'est l'appel de [_tableView reloadData] qui masque immédiatement le clavier, en fait (comme si le champ de texte n'est plus "firstResponder", mais reste quand même en mode édition)...


 


Y a-t-il un moyen de résoudre ce problème ??


 


Je précise que le sectionHeaderView en question est une vue "statique", elle n'est pas régénérée :


 


- (CGFloat) tableView: (UITableView *)tableView heightForHeaderInSection: (NSInteger)section


{


   return _headerView.bounds.size.height;


}


 


- (UIView *) tableView: (UITableView *)tableView viewForHeaderInSection: (NSInteger)section


{


   return _headerView;


}


 


Merci !


 


Thomas


Réponses

  • AliGatorAliGator Membre, Modérateur

    Hello,

     

    Peux-tu utiliser les balises CODE dans tes posts quand tu insères du code ? C'est plus lisible, merci.

     

    Sinon, je pencherai pour appeler [textField becomeFirstResponder] à  la toute fin de la méthode textFieldDidBeginEditing tout bêtement.


Connectez-vous ou Inscrivez-vous pour répondre.