2010-04-24 2 views

Antwort

4

Wenn Sie die perfekte Lösung machen wollen, sollten Sie die folgenden lcode hinzufügen Ihren App Andernfalls wird die Einstellung nach dem ersten Lesen zwischengespeichert, und wenn der Benutzer zu Einstellungen wechselt, Änderungen vornimmt und zurück schaltet, sollten wir den zwischengespeicherten Wert erneut lesen. :)

Wenn jemand mir sagt, wie man auf dieser Seite kommentieren, würde ich wirklich hilfreicher werden.

+0

Frustrierend scheint dies nicht auf iOS 6.0.1 zu funktionieren. Meine App scheint den Einstellungswert zwischenzuspeichern, der beim Laden der App ausgewählt wurde. Wenn ich die Einstellung ändere und zu meiner App zurückwechsle, wird sie nicht angepasst. Wenn ich zwinge, meine App zu beenden und neu zu starten, wird die Änderung übernommen. Ich habe jetzt ein Dilemma: Geben Sie keine Tastenklicks in meine benutzerdefinierte Tastatur ein, oder leben Sie mit dem Fehler, dass sich Einstellungen ändern, während meine App gesperrt ist. Welches ist schlimmer? –

+0

Ich habe in 6.1.4 überprüft, meine App erhält immer beide vars false von 'Boolean keyExistsAndHasValidFormat = false; bool value = CFPreferencesGetAppBooleanValue ( CFSTR ("Tastatur"), CFSTR ("/ var/mobile/Library/Preferences/com.apple.preferences.sounds"), & keyExistsAndHasValidFormat); 'Also hörte meinen Code Klicks schon vor langer Zeit zu spielen . Wenn Nutzer sich beschweren, werde ich sie direkt an Apple weiterleiten. Wir haben den Kampf verloren. – Hrissan

17

Es gibt keine dokumentierte Möglichkeit, dies zu überprüfen, aber es ist möglich. Ich weiß nicht, ob das wirklich als "private API" gilt, also bereite dich auf die Ablehnung vor, wenn du diese Methode verwendest.

Die Tastaturklick-Toneinstellungen werden in der gemeinsamen Einstellung com.apple.preferences.sounds gespeichert. So könnte man

return CFPreferencesGetAppBooleanValue(
     CFSTR("keyboard"), 
     CFSTR("/var/mobile/Library/Preferences/com.apple.preferences.sounds"), 
     NULL); 

versuchen (BTW: der eigentliche Anruf spielen die „Klick“ -Geräusch in UIKit ist [UIHardware _playSystemSound:1104];)

+3

Der Anruf CFPreferencesGetAppBooleanValue funktioniert einwandfrei, aber UIHardware wird nicht (oder irgendwo in den Dokumenten) für mich erkannt. Stattdessen habe ich das AudioToolkit-Framework hinzugefügt und 'AudioServicesPlaySystemSound (1104)' für den gleichen Effekt aufgerufen. –

+0

@Kris: Das liegt daran, dass UIHardware eine private Klasse ist. – kennytm

Verwandte Themen