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

Posted

技术标签:

【中文标题】Xcode:为啥我的应用程序不保存 UITextField?【英文标题】:Xcode: Why doesn't my app save the UITextField?Xcode:为什么我的应用程序不保存 UITextField? 【发布时间】:2011-09-25 19:27:51 【问题描述】:

我有一个应用程序,我使用 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"];

问题是它不起作用。我无法弄清楚问题所在。任何帮助将不胜感激。

提前致谢:)

【问题讨论】:

尝试在“savetextfield”方法中设置断点。检查方法是否被调用。然后,在这里发布结果。。 【参考方案1】:

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

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

如果您的操作正在运行,请检查NSLog

【讨论】:

哦实际上已经是...我刚刚发布了错误的代码...所以问题仍然存在:(【参考方案2】:

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

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

【讨论】:

以上是关于Xcode:为啥我的应用程序不保存 UITextField?的主要内容,如果未能解决你的问题,请参考以下文章

切换uitextf时停止键盘关闭

为啥我的 iOS 9 iPhone 在 Xcode 6.4 中显示为不合格设备?

为啥我的 XCode 项目包含错误的 iOS 应用程序图标文件?

为啥 Xcode 找不到我的单元测试应用程序?

为啥 Xcode 断点不起作用?

为啥自动布局在 xcode 7.2 中不再起作用?