2011-12-01 3 views
0

J'ai une application qui a parfaitement fonctionné jusqu'à la sortie de l'IOS 5. J'ai réussi à résoudre la plupart des problèmes causés par la mise à jour mais je n'arrive pas à me rétracter. Mes autres applications réussissent à le faire correctement sous iOS 5 mais il me manque quelque chose avec cette application. L'application fait défiler un grand fichier PDF et le champ textField est d'amener l'utilisateur à une page spécifique. Lorsque le clavier apparaît, il couvre le champ textField et seul le pdf est visible. Sous 4.2 le clavier se rétracte quand le Pdf est pressé mais cela ne fonctionne pas avec IOS 5. J'utilise le code ci-dessous mais il ne s'appelle pas, alors que dans mes autres applications qui rétractent le clavier avec succès le code est appelé, Qu'est-ce que je rate.Clavier ne se rétracte pas sous IOS 5

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    if(textField == pageNo){ 
    [pageNo resignFirstResponder]; 
    } 
    return YES; 
} 
+0

Est-ce que le rappel lui-même pas appelé ou est la condition if ne passe pas? –

+0

Si personne d'autre ne répond à cette question, je vais essayer de :-) Il peut être utile de joindre une capture d'écran de votre interface utilisateur. Il semble que vous ayez un PDF dans la moitié supérieure de votre écran et un champ de texte dans la moitié inférieure (puisqu'il est recouvert par le clavier). Ce qui ne semble pas être une très bonne interface utilisateur. Quel genre d'objet est la vue PDF? Et lorsque vous cliquez dessus, le champ de texte reçoit-il un rappel 'textFieldDidEndEditing'? Avez-vous correctement défini un délégué sur le champ de texte? –

+0

Le rappel lui-même n'est pas appelé du tout, je mets un point d'arrêt sur la première condition et il ne s'use jamais. Votre description de l'application est à peu près exacte et je suppose que le design n'est pas idéal, mais il se trouve sur la barre d'outils en bas avec les touches de navigation, donc je les ai tous gardés ensemble. La barre d'outils a le buttun << < > >> ainsi qu'un index et bien sûr le textField pour taper le numéro de la page que vous voulez aller. J'ai ajouté textFieldDidEndEditing et cela n'a pas été appelé non plus. Votre dernier commentaire semble comme il pourrait être la raison, j'ai mis le délégué sur le champ Champ au propriétaire du fichier. – user616076

Répondre

0

Idée de solution rapide? mettre cela dans le gestionnaire tactile de vue pdf?

if ([pageNo isFirstResponder]) [pageNo resignFirstResponder];

+0

Merci pour l'idée. J'utilise un WebView pour afficher le Pdf qui n'a pas de gestionnaire tactile. Si vous touchez le webView/Pdf dans tout autre IOS que IOS 5, il se rétracte sans problème. – user616076

+0

Géré pour trouver un moyen de contourner le problème sur les lignes ci-dessus. J'ai utilisé l'événement Did End On Exit pour appeler un IBAction qui a utilisé resignFirstResponder sur textField. Ce n'est pas très joli mais ça a marché. – user616076

+0

Cool, tant que cela fonctionne sur iOS 4 et 5 comme il se doit :) – mackross

Questions connexes