2010-05-23 22 views
11

Estoy comenzando una nueva aplicación, y me gustaría saber cómo solicitar una contraseña para abrirla.Contraseña proteger la aplicación de iPhone

Estaba considerando un UIActionSheet en la aplicación didFinishLaunchingWithOptions método del archivo de implementación del delegado de la aplicación, pero no estoy seguro de cómo hacerlo. Aunque voy a seguir intentándolo.

Encontrado this video, que parece bastante helpful.

Ahora tengo mi UIActionSheet para que aparezca "Ingresar contraseña", y estoy tratando de averiguar cómo agregar un teclado a la hoja de acción.

+0

¿Por qué es esta comunidad wiki? – kennytm

+0

Pensé que algo que ayudaría a las personas con el mismo problema debería ir en la wiki de la comunidad. ¿Estoy equivocado? Me disculpo si es así. – Thomas

+0

Debería pedir un mod para eliminar esto y hacer otra pregunta sin wiki comunitario. –

Respuesta

8

Creo que puede tener mejor suerte con una instancia completa de UIViewController en lugar de UIActionSheet. Agregar el comportamiento del teclado a una hoja de acción será difícil, sino imposible.

Si crea una subclase UIViewController, puede hacer que su delegado de aplicación lo presente en -application:didFinishLaunchingWithOptions:. Suponiendo que está utilizando algún tipo de UIViewController o UINaviagtionController para su interfaz principal, podría tener el controlador de vista de contraseña presentado de manera modal en el inicio usando UIViewController - presentModalViewController:animated:.

Una vez que tenga su controlador de vista de contraseña, necesitará agregar un UITextField para ingresar la contraseña. Haga que el campo de texto se convierta en firstResponder (llamando al becomeFirstResponder), y eso hará que se muestre el teclado. Es posible que también desee establecer la propiedad keyboardAppearance en el campo de texto para controlar cómo aparece el teclado si, por ejemplo, desea limitar a un PIN numérico versus una contraseña completa. Establecer la propiedad secureTextEntry también puede ser conveniente para evitar que se muestre la contraseña real. Consulte el protocolo UITextInputTraits en UITextField para ambas opciones.

Para hacer que la aplicación sea segura, debe crear su controlador de vista de contraseña para que no tenga botones ni opciones de navegación que no sean los botones de tipo "Enviar" o "Iniciar sesión". Si el usuario ingresa la contraseña correcta, descarta el controlador de vista modal y lo deja entrar. Si no conocen la contraseña, su única opción es presionar el botón de Inicio para salir de la aplicación ya que no tendrían manera de proceder. más allá del controlador de vista modal.

+0

¡Gracias! Eso tiene sentido leerlo. Aunque no he tenido la oportunidad de probarlo todavía. ¡Aprecio tu ayuda! – Thomas

+0

Implementar [Referencia del protocolo UIKeyInput] (http://developer.apple.com/library/ios/#documentation/uikit/reference/UIKeyInput_Protocol/Reference/Reference.html) también sería una buena idea para que pueda poner a cero la contraseña de el almacén de datos subyacente. Generalmente, los cuerpos requieren Nero, DoD (STIG), CIS (puntos de referencia de seguridad), etc. – jww

+0

¿Dónde puedo almacenar un código de seguridad de forma segura? – surlac

1

¿Qué tal un UIAlertView? Pero no sé si la aplicación es rechazada o no. Algunos dicen que sí, el otro no. No sabe si las cosas cambiaron en el pasado.

Éstos son algunos enlaces:

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 mayoría de los enlaces hacen lo mismo, todos usan CGAffineTransformMakeTranslation. Alguien dijo que esto no es necesario para iOS 4. Y a veces hay problemas. No lo probé, porque no quiero ser rechazado ...

+0

¡Gracias! No he tenido mucho tiempo para trabajar en esta aplicación, pero cuando la vuelva a hacer, me aseguraré de consultar sus consejos. ¡Gracias! – Thomas

Cuestiones relacionadas