2012-05-02 17 views
1

NSUserDefaultsを使用して入力した値を保存します。すべて正常に動作し、データは保存され、取得されます。しかし、どうすればそのUITextFieldのデフォルト値を設定できますか?私は NSUserDefaultsにデータを保存するUITextFieldのデフォルト値を設定する方法

- (void)viewDidLoad 
{ 
    textField.text = @"12345"; 
} 

を使用したり、動作しないnibファイル内のテキストを入れると、アプリが空のフィールドで始まります。私は値を自分で設定していないでしょう

- (IBAction) saveBtnPresssed : (id) sender 
{ 
    myString1 = [[NSString alloc] initWithFormat:textField.text]; 
    [textField setText:myString1]; 
    NSUserDefaults *stringDefault = [NSUserDefaults standardUserDefaults]; 
    [stringDefault setObject:myString1 forKey:@"stringKey"]; 
    NSLog(@"%@",myString1); 
} 

答えて

4

、Xcodeはバインディングを使用してこれを行うにははるかに簡単な方法を提供します。

この方法では、テキストフィールドにバインディングを設定し、 'intialTextField'などの識別できるように名前を付けます。値は自動的にNSUserDefaultsに保存され、アプリケーション終了時に更新されます。

Xcodeでは、バインドするtextFieldをクリックし、インスペクタを開きます。次に、右からTabをクリックします。これが「バインディング」タブです。

「値」フィールドのドロップダウン矢印をクリックしてチェック「ユーザデフォルトにバインドを...」

「をモデルキーパス」で、あなたとあなたのテキストフィールドを識別するための名前を設定しますこれはあなたが望むものであれば何でも構いません。

次に、TextFieldに何かを入力すると、アプリケーション終了時にその内容が保存されます。あなたは再度設定するNSUserDefaultsを使用できるアプリケーションの起動時に

[yourTextField synchronize]; 

:あなたは(だけまれにこれが必要です)すぐに保存するには、この値を必要とする場合は、アプリケーションで次のコードを入力することができます前に設定した識別子を持つテキストフィールドの値。

希望すると便利です。

+0

+1素敵な答えは、私は、おかげでこのオプションを知りませんでした。 – shannoga

+0

私はios appで作業しています。ユーザーがフィールドの値を入力しない限り、最初のアプリケーション負荷のデフォルト値が必要です。その場合は –

+0

で、私はNSUserDefaultsの 'registerDefaults'を見るでしょう、それはあなたが必要とするものです – Cristian

1

ストーリーボードのUITextFieldをダブルクリックし、デフォルト値を書き込んでください。

これはXcode 5.1で機能します!

storyboard example

関連する問題