Ответ 1
У меня была почти такая же проблема. Иногда текст исчезает.
Я решил это после изменения позиции UITextField в иерархии представлений в файле xib.
Вот видео о явлениях: http://youtu.be/c0TP8YVF9TE
Как видно из видео, значение в exampleTextView.text не теряется. Его просто спрятали каждое другое нажатие клавиши.
Решения попытались: Я не устанавливаю значение exampleTextView.text во время программы, за исключением того, что после нажатия клавиши возврата (и комментирует, что строка не меняет ничего).
Я установил:
self.exampleTextView.clearsOnBeginEditing=NO;
self.exampleTextView.clearsContextBeforeDrawing=NO;
self.exampleTextView.clearsOnInsertion=NO;
Изменить: Вот мой код: https://gist.github.com/andrewschreiber/6970283
У меня была почти такая же проблема. Иногда текст исчезает.
Я решил это после изменения позиции UITextField в иерархии представлений в файле xib.
У меня была та же проблема. Моим решением было удалить [_textField becomeFirstResponder]
из метода - (void)viewWillAppear:(BOOL)animated
. Эта ошибка возникает только в том случае, если viewcontroller был представлен модально.
Перемещение UITextField
becomeFirstResponder
от viewWillAppear
до viewWillLayoutSubviews
исправлено для моего случая. Я также добавил, чтобы добавить resignFirstResponder
в UITextField
к действиям, которые отклоняли представление (которое было представлено модально).
Попробуйте использовать все методы делегата UITextField. и, пожалуйста, дайте мне знать, что вы пытаетесь сделать с нажатой кнопкой "Готово", только установите текст всего остального или если вы поделитесь со мной всем кодом, я могу помочь вам
Пожалуйста, замените метод textFieldShouldReturn моим методом, а также реализуйте метод textFieldShouldBeginEditing в вашем коде и его отлично работающий
-(BOOL) textFieldShouldReturn:(UITextField *) textField {
[textField resignFirstResponder];
}
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView commitAnimations];
return YES;
}
Решил проблему.
На моем раскадровке я переключил текст с "Обычный" на "Атрибут", а затем снова на "Обычный".
@SbClx работает для меня, но у меня есть еще одно обходное решение, которое также работает: установите фон UITextField на любой UIImage, который вам нравится.
После некоторых проб и ошибок, я обнаружил, что ошибка исчезает, когда я устанавливаю borderStyle UITextField в UITextBorderStyleRoundedRect, чего, к сожалению, не то, что я хотел, я хочу простой белый фон.
В документации UITextField.borderStyle указано, что: Если значение установлено в стиле UITextBorderStyleRoundedRect, пользовательское фоновое изображение, связанное с текстовым полем, игнорируется. Поэтому я думаю, что фоновое изображение может иметь какое-то отношение к ошибке.