如何在UITextField中保存用户的输入?

时间:2016-09-07 13:43:51

标签: ios objective-c uitextfield

我想知道当用户在UITextField中从手机输入内容时如何保存用户的输入?

如果我只使用文本字段并运行应用程序,我可以在文本字段中输入数据,但是当我关闭应用程序时,数据就消失了。那么如何永久存储该数据并在应用程序关闭并重新打开后再次显示该数据。有没有办法保存它?

4 个答案:

答案 0 :(得分:2)

首先,您应该在用户关闭应用程序之前进行编辑时保存文本(例如,由NSUserDefaults保存):

self.yourTextView.delegate = self;

- (void)textViewDidChange:(UITextView *)textView
{
    if (textView.markedTextRange == nil) 
    {
        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
        [defaults setObject:textView.text forKey:@"userText"];
        [defaults synchronize];
    }
}

然后,在用户再次打开您的应用程序之前加载用户保存的文本:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.yourTextView.text = [[NSUserDefaults standardUserDefaults]objectForKey:@"userText"];
}

答案 1 :(得分:1)

我们可以将数据保存到3个数据库

如果要将单个数据存储到db中,可以使用

NSUserDefault

对于商店

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:textView.text forKey:@"textviewdata"];
[defaults synchronize];

用于检索

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *strTextViewText = [NSString stringWithFormat:@"%@",[defaults objectForKey:@"textviewdata"]];

然后存储大量数据,我们可以使用

SQLite

CoreData

答案 2 :(得分:1)

以下是一些在应用程序中保存数据的方法。

  1. 使用sqlite创建本地数据库或coredata都提供了在本地保存数据的便利性,在使用之前请找到使用这些数据库的不同情况。
  2. 使用NSUserDefaluts但未重新录制,因为NSUserDefaults并不意味着存储敏感信息以获取更多信息see imp link如果您仍然可以查看示例。
  3. 使用NSUserDefaluts存储数据:

    [[NSUserDefaults standardUserDefaults]setObject:self.textfield.text forKey:@"yourKey"];
    

    要在app中的任何位置获取数据:

    object = [[NSUserDefaults standardUserDefaults] valueForKey:@"yourKey"];
    

答案 3 :(得分:0)

试试这个:

-(void)viewDidDisappear:(BOOL)animated
    {
        [[NSUserDefaults standardUserDefaults]setObject:self.urtextfield.text forKey:@"savedtext"];
    }
    -(void)viewWillAppear:(BOOL)animated
    {
      self.urtextfield.text = [[NSUserDefaults standardUserDefaults]objectForKey:@"savedtext"];
    }