保存UITextField输入

时间:2011-08-15 10:48:42

标签: iphone objective-c xcode

我已经看过很多关于此的其他问题(我知道有很多!),但似乎没有一个满足我的查询。 基本上我有一个视图控制器,它包含两个UITextFields。 该应用程序的设计是为了加载此页面,用户输入数字,然后点击背景以摆脱键盘,并保存值。然后,每当用户导航回页面时,我都希望将其预加载到文本字段中。我认为我将不得不创建另一个名为saveData或其他的IBAction,但无论如何都要在点击背景时自动保存它?另外为了保存我想要使用NSUserDefaults的数据,有没有其他方法来保存数据? 任何帮助表示赞赏, 迈克尔 我使用以下代码进行应用程序的编辑和背景点击部分:

-(IBAction) textFieldDoneEditing : (id) sender{

[sender resignFirstResponder];

}

- (IBAction)backgroundTap:(id)sender {

[self.textInputOne resignFirstResponder];
[self.textInputTwo resignFirstResponder];

}

2 个答案:

答案 0 :(得分:3)

NSUserDefaults可以很好地解决这个问题:

-(IBAction) backgroundTap:(id) sender {

    NSString *inputOne = textInputOne.text;
    NSString *inputTwo = textInputTwo.text;

    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    [userDefaults setObject:inputOne forKey:@"InputOne"];
    [userDefaults setObject:inputTwo forKey:@"InputTwo"];

    [textInputOne resignFirstResponder];
    [textInputTwo resignFirstResponder];
    [sender resignFirstResponder];
}

然后在- (void)viewDidLoad中回调存储的NSUserDefaults:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];   
textInputOne.text = [userDefaults objectForKey:@"InputOne"];
textInputTwo.text = [userDefaults objectForKey:@"InputTwo"];

应该可以正常工作

答案 1 :(得分:1)

如果您想保存数据(特别是如果应用程序已关闭),NSUserdefaults是一种很好的简单方法。其他选项包括写入您自己的plist文件或设置核心数据存储,但您只需保存两个数字,因此不确定是否需要所有这些。