2011-09-23 43 views
0

我有一個的UITableViewCell內的的UITextField。我想要的是爲應用程序保存用戶輸入的文本。Xcode:爲什麼不使用NSUserDefaults保存UITextField?

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

但是這個動作,它負載工作不正常:我已經作出的UITextField調用這個代碼動作試圖

- (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 

並沒有發生什麼應用程序。

有什麼想法?

感謝提前:)

回答

0

要首先:感謝您的精力和時間:)

原來,問題是不是與保存和載入它的代碼。問題是我只創建了一個UITextfield,然後將其放入每個UITableViewCell中,這就是問題所在。因此,我爲每個UITableViewCells創建了單獨的UITextFields,並修復了這個問題:)

1

我使用了完全相同的功能在我的應用程序之一,這是我使用的代碼:

[[NSUserDefaults standardUserDefaults]setObject: textField.text forKey:@"TextField"];

基本上,我不認爲saveTextField方法的前兩行需要分配一個新字符串。

+0

0123好像不能工作......當我通過dismissModalViewControllerAnimated解散Viewcontroller,然後使用presentMoadlViewController再次呈現它時,它消失了......任何想法? –

+1

是 - 如果您不同步默認值,則不會立即保存。設置後調用此:'[[NSUserDefaults的standardUserDefaults]同步]' – memmons

+0

很抱歉,但不起作用 –