2017-09-11 2 views
0

m'a donné un vieux code pour mettre à jour (de l'époque iOS 5), et il y a un morceau de code dans ce que je ne comprends pas tout à fait:Premier répondant sur UITableViewController?

- (void)viewDidAppear:(BOOL)animated 
{ 
    [self becomeFirstResponder]; 
} 

- (BOOL)canBecomeFirstResponder 
{ 
    return YES; 
} 

Cela fait partie d'une sous-classe UITableViewController qui instancie un ensemble de sous-classes UITableViewCell personnalisées qui contiennent toutes des UITextFields (dont l'entrée est validée et traitée par la sous-classe UITableViewCell, avant d'être transmise à UITableViewController via une méthode déléguée). AFAIK, UIResponder choses telles que getFirstResponder et canBecomeFirstResponder a plus à voir avec les widgets de contrôle interactif de l'utilisateur (comme les champs de texte et d'autres choses), plutôt que les contrôleurs de vue de table.

Quelqu'un peut-il me dire si ce code particulier sert à quelque chose sur le UITableViewController? Ou est-ce quelque chose que je peux supprimer? Le comportement de l'application ne semble pas changer, que ce soit là ou non.

Répondre

0

S'il s'agit effectivement d'une sous-classe de UITableViewController, vous ne devriez pas avoir besoin du code mentionné. Comme vous l'avez mentionné, le statut de premier répondant est généralement géré par les contrôles de l'interface utilisateur. Cela étant dit, soyez à l'affût au cas où les développeurs essaieraient de faire des trucs vraiment funky (pas clairs) comme forcer le UITableViewController en tant que firstResponder puis avoir un autre morceau de code pour envoyer une requête au firstResponser en lui demandant d'être UITableViewController ou attacher certaines méthodes dans un NIB à l'objet firstResponder.