2011-11-29 15 views
10

Tengo varios elementos de campo de texto en Root.plist de Settings.bundle. Los necesito todos para mi aplicación, pero quiero que uno de ellos esté oculto o no editable por el usuario. P.ej. Cuando el usuario va a su iPhone a Configuración -> MiAplicación, quiero que uno de los campos no esté visible allí, o deshabilitado para su edición. es posible?¿Puedo ocultar/deshabilitar campos en Settings.bundle?

Respuesta

4

Después de más investigaciones encontré la respuesta a mi pregunta y la respuesta al problema que estoy tratando de resolver.

Pregunta: ¿Puede ocultar/deshabilitar los campos en Settings.bundle/Root.plist?
Respuesta: No.

Problema: ¿Cómo puedo almacenar de forma segura la información de autenticación para mi aplicación?
Respuesta: Built in Keychain services.

Fuente: Keychain Services Tasks for iOS

+1

Esto es impar. La configuración de la aplicación Nike + deshabilita los campos según el estado de un campo de cambio. Característica no documentada? – batkuip

+1

@batkuip no, creo que esto se debe a que Nike + está integrado en iOS. Nunca he visto otra aplicación hacer esto. – Thomas

+0

Gracias por tomarse el tiempo para iluminarnos;) +1 – katzenhut

2

Respuesta corta, no se puede. Respuesta larga: supongo que está utilizando Root.plist en otro lugar dentro de su aplicación, ¿verdad? Si es así, lo que recomendaría en este caso, si realmente necesita que funcione de la manera que describió, es crear dos archivos plist, y combinarlos en tiempo de ejecución.

En otras palabras, cree Root.plist con solo los campos que desea que el usuario cambie en la página de configuración de iOS (por ejemplo, sin el campo que está tratando de ocultar), y otro archivo .plist con el resto de los campos que desea manejar dentro de su aplicación.

Luego, en tiempo de ejecución, primero carga Root.plist y luego combina el contenido del otro archivo .plist en la estructura de datos que va a utilizar.

No muy resbaladizo, pero podría funcionar.

0

Ajuste del tipo en el plist de "Campo de texto" a "Título" trabaja en que se obtiene un campo que ya no modificable por el usuario no es más que puede ser leído por la aplicación.

No se ve del todo bien en cuanto a la consistencia de la interfaz de usuario, por lo que esta puede no ser la solución ideal para deshabilitar un elemento de preferencias.

5

Claro que puedes. Simplemente cambie el tipo de elemento a título.

Aún puede guardar y leer su valor del código. pero, no aparecerá en la aplicación. configuraciones.

+0

si se tratara de un tipo de valor múltiple, perderá sus datos al cambiarlo a título. esto no funciona – iosMentalist

Cuestiones relacionadas