Xcode:为什么这段代码不能用于使用NSUserDefaults保存UITextField?

时间:2011-09-23 23:40:25

标签: ios cocoa-touch nsuserdefaults

我在UITableViewCell中有一个UITextField。我想要的是应用程序保存用户输入的文本。我试过让UITextField用这段代码调用一个动作:

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

但是,它加载的此操作无法正常工作:

- (IBAction)saveTextField:(id)sender {

NSString *TextFieldString = [[NSString alloc] initWithString:TextField.text];
[TextField setText:TextFieldString];
NSUserDefaults *UserSettings = [NSUserDefaults standardUserDefaults];
[UserSettings setObject:TextField forKey:@"TextField"];    }

当我通过单击“完成”来尝试隐藏键盘退出UITextField时,我收到此消息:

*** WebKit discarded an uncaught exception in the webView:shouldInsertText:replacingDOMRange:givenAction: delegate: <NSInvalidArgumentException> *** -[NSPlaceholderString initWithString:]: nil argument

并且应用中没有任何反应。

有什么想法吗?

提前致谢:)

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

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

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