Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 以编程方式保存UITextField数据_Ios_Objective C_Xcode_Uitextfield_Nsuserdefaults - Fatal编程技术网

Ios 以编程方式保存UITextField数据

Ios 以编程方式保存UITextField数据,ios,objective-c,xcode,uitextfield,nsuserdefaults,Ios,Objective C,Xcode,Uitextfield,Nsuserdefaults,我得到了一个UITextField作为子视图 - (void)viewDidLoad { [super viewDidLoad]; textField = [[UITextField alloc] initWithFrame:CGRectMake(21, 21, 159, 37)]; textField.borderStyle = UITextBorderStyleNone; textField.font = [UIFont systemFontOfSize:15]; textFie

我得到了一个UITextField作为子视图

- (void)viewDidLoad {

    [super viewDidLoad];

textField = [[UITextField alloc] initWithFrame:CGRectMake(21, 21, 159, 37)];
textField.borderStyle = UITextBorderStyleNone;
textField.font = [UIFont systemFontOfSize:15];
textField.placeholder = @"name";
textField.autocorrectionType = UITextAutocorrectionTypeNo;
textField.keyboardType = UIKeyboardTypeDefault;
textField.returnKeyType = UIReturnKeyDone;
textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
textField.textColor = [UIColor whiteColor];
textField.keyboardAppearance = UIKeyboardAppearanceDark;
textField.delegate = (id) self;
textField.autocapitalizationType = UITextAutocapitalizationTypeNone;
[textField addTarget:self action:@selector(saveData:) forControlEvents:UIControlEventEditingDidEnd];

[self.view addSubview:textField];

}
要加载数据视图,请单击“加载”

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];  
    NSString *loadstring = [defaults objectForKey:@"savedstring"]; 
    [textField setText:loadstring];

现在的问题是它不会保存和加载UITextField的文本。

首先,您需要在Textfield中输入一些字符串并按return键,这样它就有机会调用saveData方法并将值存储在NSUserDefaults中。只需检查所有值。

我找到了一个解决方案:

textField.text = [defaults objectForKey:@"savedstring"];

感谢大家的回答

在此方法之后添加子视图写入加载数据方法

[self.view addSubview:textField];

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];  
 NSString *loadstring = [defaults objectForKey:@"savedstring"]; 
 [textField setText:loadstring];

您是否将textfield保存为属性?我注意到您正在textfield的UIControlEventEditingDidEnd事件中调用saveData:method,此事件调用是否正确?正如Samir所说,检查该事件是否被调用,如果是,则检查textfield.text是否包含任何字符串值或其null。真的吗?你的问题中已经写了同样的一行。这可不酷,伙计。是的,在初始化textfield之前,您可能正在分配@savedstring的值。
[self.view addSubview:textField];

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];  
 NSString *loadstring = [defaults objectForKey:@"savedstring"]; 
 [textField setText:loadstring];