Xcode:为什么我的应用程序不保存 UITextField?

发布于 2024-12-06 13:27:19 字数 905 浏览 3 评论 0原文

我有一个应用程序,我可以使用presentModalViewController切换到带有TableView的视图。然而,带有 TableView 的视图不在 UITableViewController 中,而是在常规 UIViewController 中。我已将 UITextFields 写入 UITableViewCells 中。我使用此操作来保存用户输入的内容:

- (IBAction)saveTextField:(id)sender {

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:TextField.text forKey:@"keyTextField"];
[userDefaults synchronize]; }

我使用以下代码调用此方法:

    [TextField addTarget:self action:@selector(hideKeyboard:) forControlEvents:UIControlEventEditingDidEndOnExit];

当我使用dismissModalViewController关闭ViewController时,然后当我再次呈现它时,我使用以下代码调用ViewDidLoad中的NSUserDefaults:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
TextField.text = [userDefaults objectForKey:@"keyTextField"];

问题是它不'不工作。而且我无法找出问题所在。任何帮助将不胜感激。

提前致谢 :)

I have an app where I switch to a view with a TableView using presentModalViewController. The View with the TableView is however not at UITableViewController but a regular UIViewController. I have written UITextFields into the UITableViewCells. I use this action to save what the user inputs:

- (IBAction)saveTextField:(id)sender {

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:TextField.text forKey:@"keyTextField"];
[userDefaults synchronize]; }

I call this method with this code:

    [TextField addTarget:self action:@selector(hideKeyboard:) forControlEvents:UIControlEventEditingDidEndOnExit];

When I dismiss the ViewController using dismissModalViewController and then when I presents it again I call the NSUserDefaults in the ViewDidLoad with this code:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
TextField.text = [userDefaults objectForKey:@"keyTextField"];

Problem is that it doesn't work. And I can't figure out the problem. Any help would be appreciated.

Thanks in advance :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

秋风の叶未落 2024-12-13 13:27:19

target 必须与您的方法相同,这意味着如果您有 - (void)saveTextField:(id)sender 那么您需要编写添加目标的代码

 [TextField addTarget:self action:@selector(saveTextField:) forControlEvents:UIControlEventEditingDidEndOnExit];

使用 NSLog 检查您的操作是否正在运行。

The target has to be the same as your method, meaning that if you have - (void)saveTextField:(id)sender then you code to add the target need to be

 [TextField addTarget:self action:@selector(saveTextField:) forControlEvents:UIControlEventEditingDidEndOnExit];

Check usin NSLog if your action is being run.

终陌 2024-12-13 13:27:19

您不能使用 textFieldDidEndEditing: 委托方法来进行保存,而不是设置目标吗?

Instead of setting a target, can't you do that saving with the textFieldDidEndEditing: delegate method?

黯然 2024-12-13 13:27:19

在视图中使用此代码已加载
NSUserDefaults *user=[NSUserDefaults standardUserDefaults];
TextField.text=[用户 stringForKey:@"keyTextField"];

use this code in view did load
NSUserDefaults *user=[NSUserDefaults standardUserDefaults];
TextField.text=[user stringForKey:@"keyTextField"];

辞慾 2024-12-13 13:27:19

首先:感谢大家付出的努力和时间:)

事实证明,问题不在于保存和加载它的代码。问题是我只创建了一个 UITextfield,然后将其放入每个 UITableViewCell 中,这就是问题所在。所以我为每个 UITableViewCells 创建了单独的 UITextFields 并解决了问题:)

To begin with: thanks to all of you for your effort and time :)

Turns out the problem wasn't with the code that saves and loads it. The problem was that I only created one UITextfield which I then put into every UITableViewCell and that was the problem. So I created individual UITextFields for every UITableViewCells and that fixed the problem :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文