2010-05-23 20 views
11

Je commence une nouvelle application, et je voudrais savoir comment exiger un mot de passe pour l'ouvrir.Mot de passe protéger l'application iPhone

Je considérais un UIActionSheet dans la méthode d'application didFinishLaunchingWithOptions du fichier de mise en œuvre de délégué de l'application, mais je ne sais pas comment y arriver. Je vais continuer à essayer cependant.

Trouvé this video, ce qui semble assez utile.

Maintenant, j'ai mon UIActionSheet pour afficher "Entrer mot de passe", et j'essaie de comprendre comment ajouter un clavier à la feuille d'action.

+0

Pourquoi ce wiki communautaire? – kennytm

+0

Je pensais que quelque chose qui aiderait les gens avec le même problème devrait aller dans le wiki de la communauté. Est-ce que je me trompe? Je m'excuse si c'est le cas. – Thomas

+0

Vous devriez demander un mod pour supprimer ceci et faire une autre question sans wiki communautaire. –

Répondre

8

Je pense que vous pourriez avoir plus de chance en utilisant une instance complète UIViewController au lieu d'un UIActionSheet. L'ajout du comportement du clavier à une feuille d'action sera difficile, voire impossible. Si vous créez une sous-classe UIViewController, vous pouvez demander à votre délégué d'application de le présenter dans -application:didFinishLaunchingWithOptions:. En supposant que vous utilisez une sorte de UIViewController ou UINaviagtionController pour votre interface principale, vous pourriez avoir le contrôleur de vue de mot de passe présenté modalement au démarrage en utilisant UIViewController - presentModalViewController:animated:. Une fois que vous avez votre contrôleur de vue de mot de passe, vous devez ajouter un UITextField pour la saisie du mot de passe. Faites en sorte que le champ de texte devienne firstResponder (en appelant le becomeFirstResponder), ce qui entraînera l'affichage du clavier. Vous pouvez également définir la propriété keyboardAppearance dans le champ de texte pour contrôler l'apparence du clavier si, par exemple, vous voulez limiter le code PIN à un mot de passe complet. La définition de la propriété secureTextEntry peut également être souhaitable pour empêcher l'affichage du mot de passe réel. Voir le protocole UITextInputTraits sur UITextField pour ces deux options. Afin de sécuriser l'application, vous devez créer votre contrôleur de vue de mot de passe afin qu'il ne dispose pas de boutons ou d'options de navigation autres qu'un bouton de type «Envoyer» ou «Connexion». Si l'utilisateur entre le mot de passe correct, vous fermez le contrôleur de vue modale et les laissez entrer. S'ils ne connaissent pas le mot de passe, leur seul choix est d'appuyer sur le bouton Accueil pour quitter votre application car ils n'auraient aucun moyen de continuer au-delà du contrôleur de vue modale.

+0

Merci! Cela a du sens de le lire. Je n'ai pas encore eu l'occasion de l'essayer. J'apprécie ton aide! – Thomas

+0

La mise en œuvre de [Référence du protocole UIKeyInput] (http://developer.apple.com/library/ios/#documentation/uikit/reference/UIKeyInput_Protocol/Reference/Reference.html) serait également une bonne idée afin que vous puissiez mettre à zéro le mot de passe de le magasin de données sous-jacent. La mise à zéro est généralement requise par les organismes NIST, DoD (STIG), CIS (Security Benchmarks), etc. – jww

+0

Où puis-je stocker un mot de passe en toute sécurité? – surlac

1

Qu'en est-il un UIAlertView? Mais je ne sais pas si l'application est rejetée ou non. Quelques-uns disent oui, l'autre non. Ne sait pas si les choses ont changé dans le passé.

Voici quelques liens:

http://junecloud.com/journal/code/displaying-a-password-or-text-entry-prompt-on-the-iphone.html

UITextField in UIAlertView on iPhone - how to make it responsive?

http://iphone-dev-tips.alterplay.com/2009/12/username-and-password-uitextfields-in.html

http://discussions.apple.com/thread.jspa?threadID=1674641&start=15&tstart=0

http://icodeblog.com/2009/11/09/iphone-coding-tutorial-inserting-a-uitextfield-in-a-uialertview/

La plupart des liens font de même, ils utilisent tous CGAffineTransformMakeTranslation. Quelqu'un a déclaré que ce n'est pas nécessaire pour iOS 4. Et parfois, il y a des problèmes. N'a pas essayé, parce que je ne veux pas être rejeté ...

+0

Merci! Je n'ai pas eu beaucoup de temps pour travailler sur cette application, mais quand je la récupèrerai, je serai sûr de vérifier vos conseils. Merci! – Thomas

3

Pensé le repo pourrait être utile pour quelqu'un qui visite cette page.