Xcode: почему этот код не работает для сохранения UITextField с помощью NSUserDefaults? - PullRequest
0 голосов
/ 24 сентября 2011

У меня есть UITextField внутри UITableViewCell.Я не хочу, чтобы приложение сохраняло текст, введенный пользователем.Я пытался заставить 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 ]

1 голос
/ 24 сентября 2011

Я использую точно такую ​​же функциональность в одном из своих приложений, и вот код, который я использую:

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

В принципе, я не думаю, что первые две строки внеобходим ваш метод saveTextField, в котором вы размещаете новую строку.

0 голосов
/ 28 сентября 2011

Для начала: спасибо за ваши усилия и время:)

Оказывается, проблема не в коде, который сохраняет и загружает его. Проблема заключалась в том, что я создал только одно поле UIText, которое затем помещал в каждый UITableViewCell, и это было проблемой. Поэтому я создал отдельные UITextFields для каждого UITableViewCells, и это решило проблему:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...