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?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 iOS 9 iPhone 在 Xcode 6.4 中显示为不合格设备?