TextField, UserDefault, speichern und auslsen

  • TextField, UserDefault, speichern und auslsen

    Guten Tag Gemeinde,

    Ich habe mich heute angemeldet, weil ich einfach nicht ohne Hilfe weiterkomme.
    Habe mich in den letzten Tagen mit xCode4 beschäftigt und versuche gerade eine Cocoa Anwendung zu schreiben für MacOSX.

    Problem:
    Ich versuche den Inhalt eines TextField in die UserDefaults zu schreiben. Nach dem Neustart der Anwendung soll dieses Textfeld automatisch wieder mit dem gespeicherten Wert befüllt werden.
    Das bekomme ich nicht hin.
    Hier mal der Code:

    Quellcode

    1. #import "AppDelegate.h"
    2. @implementation AppDelegate
    3. @synthesize Haussteuerung;
    4. @synthesize zuhauseTextField;
    5. @synthesize unterwegsTextField;
    6. @synthesize Hauptfenster;
    7. - (void)viewDidLoad
    8. {
    9. // Get the stored data before the view loads
    10. NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    11. zuhauseTextField = [defaults objectForKey:@"zuhause"];
    12. unterwegsTextField = [defaults objectForKey:@"unterwegs"];
    13. }
    14. - (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    15. [[Haussteuerung mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://xxxxxxx.dyndns.org"]]];
    16. }
    17. - (IBAction)save:(id)sender {
    18. // Store the data
    19. NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    20. [defaults setObject:zuhauseTextField forKey:@"zuhause"];
    21. [defaults setObject:unterwegsTextField forKey:@"unterwegs"];
    22. [defaults synchronize];
    23. NSLog(@"Data saved");
    24. }
    25. @end
    Alles anzeigen


    Das funktioniert aber nicht. Habe im Netz viel gefunden, aber meist für IOS, nicht für OSX.
    Kann mir jemand von euch Profis das mal so ändern, daß die beiden TextFields gespeichrt und wieder ausgelesen werden?

    Würde mich sehr über Hilfe für einen Newbie freuen

    Danke und Gruß
    Dirk
  • Quellcode

    1. [zuhauseTextField setStringValue: [defaults objectForKey:@"zuhause"]];
    2. [defaults setObject:[zuhauseTextField stringValue] forKey:@"zuhause"];
    Xcode 4 sucks – „,Multiple exclamation marks‘, he went on, shaking his head, are a sure sign of a diseased mind.‘“ (Terry Pratchett 1992: Eric)

    "Wir ordnen und befehlen hiermit allen Ernstes, dass die Advocati wollene schwarze Mäntel, welche bis unter das Knie gehen, unserer Verordnung gemäß zu tragen haben, damit man die Spitzbuben schon von weitem erkennt." (Friedrich Wilhelm I., Soldatenkönig)
  • @mika:

    So, habe es ausprobiert - funktioniert! Vielen Dank!!

    Nun steh ich vorm nächsten Rätsel:

    Habe mir eine "Radio Group" mit zwei Buttons angelegt.
    Wie wird denn da nun in die UserDefaults geschrieben, welcher Radiobutton an ist? Die wechseln ja. Wenn ich den einen drücke, geht der andere aus. Da kann ich ja nicht die buttonCells abfragen, sondern muss ja den Zustand der Radio Group(?) irgendwie abspeichern.

    Wäre nett, wenn Du dafür auch nochmal ein Beispiel zum Abspeichern und Auslesen geben könntest....

    Schande über mich, aber aus der Dokumentation werd ich noch nicht schlau. Muss mich immer anhand von Beispielen durchhangeln und dadurch dann die Doku verstehen.

    Danke und Gruß
    Dirk
  • Vielleicht als "Bool Variable" in den UserDefaults abspeichern, den Zustand kennst du ja ?

    Quellcode

    1. [defaults setBool:rbZustand forKey:@"radioButton"];
    2. rbZustand = [defaults boolForKey:@"radioButton"];

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von ramo ()

  • critical_limit schrieb:

    Habe mir eine "Radio Group" mit zwei Buttons angelegt.


    Das ist dann ein NSMatrix Objekt, die Zauberwörter heißen:

    Quellcode

    1. [[object selectedCell] tag];
    2. und
    3. [object selectCellWithTag: wert];


    Ohne die Doku wirst Du nicht weit kommen …
    Xcode 4 sucks – „,Multiple exclamation marks‘, he went on, shaking his head, are a sure sign of a diseased mind.‘“ (Terry Pratchett 1992: Eric)

    "Wir ordnen und befehlen hiermit allen Ernstes, dass die Advocati wollene schwarze Mäntel, welche bis unter das Knie gehen, unserer Verordnung gemäß zu tragen haben, damit man die Spitzbuben schon von weitem erkennt." (Friedrich Wilhelm I., Soldatenkönig)
  • Hm,

    nee, so geht´s nicht. Bekomme immer eine "1" angezeigt, egal ob der eine Button an ist oder der andere.

    Kann man nicht dem Radiobutton einen String zuweisen? Also wenn der eine an ist dann soll ausgabe sein "zuhause", wenn der andere an ist "unterwegs".

    Irgendwie raff ich das noich nicht so ganz.

    Es sind ja zwei buttons eigentlich, die vom anderen jeweils dann den Status geändert bekommen.
    Im Builder sind auch 3 Button Cells (obwohl ja nur zwei da sind.

    Ich glaub, ich muss da erstmal noch´n bisschen üben, bis ich sowas hinbekomme....