UITextField保存文本

时间:2011-02-21 04:59:23

标签: iphone uitextfield

我有一个UITextField用于插入用户名。 在导航栏的右侧,我有一个名为“Next”的按钮,用于切换到下一个视图。

我有这个方法:

- (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
    [theTextField resignFirstResponder];
    [[NSUserDefaults standardDefaults] setObject:theTextField.text forKey:@"name_post"];
    return YES;
}

如您所见,我使用NSUserDefaults来保存我的临时文本。 因此,当我单击字段键盘上的“返回”键时,文本将被保存。 问题是当我点击顶部的下一个按钮时,字段的键盘仍然可见,因为上面的方法没有被调用,文本也没有保存。

如何解决问题?

5 个答案:

答案 0 :(得分:1)

使用textFieldShouldReturn:方法的内容编写一个名为“saveText”的方法,并从textFieldShouldReturn:方法和按钮的操作中调用它。

答案 1 :(得分:1)

- (BOOL) NextButtonAction {
    [textField resignFirstResponder];
    [[NSUserDefaults standardDefaults] setObject:theTextField.text forKey:@"name_post"];
    return YES;
}

- (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
     return [self NextButtonAction];
}

将Next按钮的目标更改为NextButtonAction,并从委托方法textFieldShouldReturn调用NextButtonAction,并创建类的textField成员,以便您可以从这两个函数中访问它。

答案 2 :(得分:0)

您可以在下一个按钮单击时保存文本字段文本。这样,它可以独立于键盘可见的位置

答案 3 :(得分:0)

- (void)viewDidDisappear:(BOOL)animated{
NSString *inputOne = textview.text;

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

}

这对我有用,因为用户没有以预期的方式退出键盘

答案 4 :(得分:-1)

您可以在按钮上添加一个nstimer,使按钮等待1秒后再继续。

这是一个糟糕的解决方案,但一秒钟并不多。用户只会认为应用程序正在加载巨大的东西。只需在下一页添加一个大图像。