C'est la méthode du délégué de champ de text mais j'ai des doutes sur le type de return
-(BOOL)textFieldShouldReturn:(UITextField *)textField { [textField resignFirstResponder]; return NO; }
et c'est la même méthode avec un type de return différent
-(BOOL)textFieldShouldReturn:(UITextField *)textField { [textField resignFirstResponder]; return YES; }
par les deux nous pouvons cacher le keyboard dans le téléphone. mais quelle est la signification du type de return "OUI" ou "NON". Je ne vois aucune différence.
Le textFieldShouldReturn est un endroit où vous pouvez manipuler le button de return sur le keyboard.
textFieldShouldReturn request au délégué si le champ de text doit traiter l'appui sur le button de return.
Si vous implémentez votre propre code pour traiter le button de return, vous devez renvoyer NON ou renvoyer YES pour qu'il soit traité par défaut.
L'état IOS Docs: Le champ de text appelle cette méthode chaque fois que l'user appuie sur le button de return. Vous pouvez utiliser cette méthode pour implémenter tout comportement personnalisé lorsque le button est appuyé.
En plus des autres réponses ici (qui confirment essentiellement qu'il n'y a pas de différence majeure, pas de démission automatique du premier répondant en returnnant YES
, etc.), j'ai découvert une occurrence étrange complètement dépendante de la valeur de return , spécifiquement pour un UITextField
avec autocorrection.
Vous avez un UITextField
avec l'autocorrection activée
Vous avez implémenté la méthode delegate quelque chose comme ceci (où le champ de text est résigné):
- (BOOL)textFieldShouldReturn:(UITextField *)textField { if (textField == self.myAutocorrectingTextField) { [self.myAutocorrectingTextField resignFirstResponder]; } return YES; }
Vous exécutez l'application, tapez " Câble " dans le champ de text, puis appuyez sur la touche de return, en le démissionnant en tant que premier répondeur.
YES
: J'ai testé une poignée d'autres mots qui répondent de la même manière:
NO
: Normal . Le text du champ de text n'aura pas été modifié.
Lorsque vous renvoyez YES
, le champ de text peut corriger automatiquement les mots déjà corrigés. Cependant, il ne présente pas l'une de ces "bulles de text autocorrigantes", car ce sont des mots légitimes.
Lorsque vous renvoyez NO
, le champ de text ne corrige pas automatiquement les mots déjà corrigés.
Remarque: Dans les deux cas, les mots incorrectement orthographiés seront toujours corrigés. Par exemple:
Une différence que je vois sur la base de l'expérience personnelle est que si vous returnnez OUI, la correction automatique et la capitalisation automatique sont déclenchées, si vous renvoyez NON, elles ne le sont pas. Il pourrait y avoir d'autres choses faites, mais c'est tout ce que j'ai pu remarquer jusqu'ici.
C'est ce qu'ils entendent par "comportement par défaut".