2011-11-29 12 views
10

Ho diversi elementi di campo di testo nel file Root.plist del mio Settings.bundle. Ho bisogno di tutti loro per la mia app, ma voglio che uno di essi sia nascosto o non modificabile dall'utente. Per esempio. Quando l'utente va sul suo iPhone su Impostazioni -> MyApp, voglio che uno dei campi non sia visibile lì, o disabilitato per la modifica. È possibile?Posso nascondere/disattivare i campi in Settings.bundle?

risposta

4

Dopo ulteriori ricerche ho trovato la risposta alla mia domanda e la risposta al problema che sto cercando di risolvere.

Domanda: È possibile nascondere/disabilitare i campi in Settings.bundle/Root.plist?
Risposta: No.

Problema: Come faccio a memorizzare in modo sicuro le informazioni di autenticazione per la mia app?
Risposta: Servizi portachiavi integrati.

Fonte: Keychain Services Tasks for iOS

+1

Questo è strano. Le impostazioni dell'applicazione Nike + disabilitano i campi in base allo stato di un campo interruttore. Funzionalità non documentata? – batkuip

+1

@batkuip no, penso che questo sia perché Nike + è integrato in iOS. Non ho mai visto un'altra app farlo. – Thomas

+0

Grazie per aver dedicato del tempo per chiarirci;) +1 – katzenhut

2

Risposta breve, non è possibile. Risposta lunga: presumo che tu stia utilizzando Root.plist da qualche altra parte all'interno della tua app, giusto? In tal caso, ciò che consiglierei in questo caso, se hai davvero bisogno che funzioni come descritto, è creare due file plist e unirli in fase di runtime.

In altre parole, crea Root.plist con solo i campi che vuoi che l'utente cambi nella pagina delle impostazioni di iOS (ad esempio, senza il campo che stai attualmente cercando di nascondere), e un altro file .plist con il resto di i campi che vuoi gestire all'interno della tua app.

Quindi, in fase di esecuzione, è necessario caricare Root.plist, quindi unire il contenuto di un altro file .plist nella struttura dati che si utilizzerà.

Non molto lucido, ma potrebbe funzionare.

0

Impostazione del tipo nel plist da "Campo di testo" a "Title" lavora a che si ottiene un campo che non è più modificabile da parte dell'utente non è che può essere letto dal app.

Per quanto riguarda l'uniformità dell'interfaccia utente, non sembra corretto, quindi questa potrebbe non essere la soluzione ideale per disabilitare un elemento delle preferenze.

5

Certo che puoi. Basta cambiare il tipo di oggetto in titolo.

È ancora possibile salvare e leggere il suo valore dal codice. ma non apparirà nell'app. impostazioni.

+0

se era un tipo a più valori, perderà i suoi dati quando lo si cambia in titolo. questo non funziona – iosMentalist

Problemi correlati