Текст UITextField исчезает при каждом нажатии клавиши

Вот видео о явлениях: 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

Ответы

Ответ 1

У меня была почти такая же проблема. Иногда текст исчезает.

Я решил это после изменения позиции UITextField в иерархии представлений в файле xib.

enter image description here

Ответ 2

У меня была та же проблема. Моим решением было удалить [_textField becomeFirstResponder] из метода - (void)viewWillAppear:(BOOL)animated. Эта ошибка возникает только в том случае, если viewcontroller был представлен модально.

Ответ 3

Перемещение UITextField becomeFirstResponder от viewWillAppear до viewWillLayoutSubviews исправлено для моего случая. Я также добавил, чтобы добавить resignFirstResponder в UITextField к действиям, которые отклоняли представление (которое было представлено модально).

Ответ 4

Попробуйте использовать все методы делегата 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;


}

Ответ 5

Решил проблему.

На моем раскадровке я переключил текст с "Обычный" на "Атрибут", а затем снова на "Обычный".

Ответ 6

Решение

@SbClx работает для меня, но у меня есть еще одно обходное решение, которое также работает: установите фон UITextField на любой UIImage, который вам нравится.

После некоторых проб и ошибок, я обнаружил, что ошибка исчезает, когда я устанавливаю borderStyle UITextField в UITextBorderStyleRoundedRect, чего, к сожалению, не то, что я хотел, я хочу простой белый фон.

В документации UITextField.borderStyle указано, что: Если значение установлено в стиле UITextBorderStyleRoundedRect, пользовательское фоновое изображение, связанное с текстовым полем, игнорируется. Поэтому я думаю, что фоновое изображение может иметь какое-то отношение к ошибке.