iOS: UITextField selectAll + Редактирование началось не работает

Я пытаюсь сделать текст в UITextField выбрать, когда пользователь нажимает поле, чтобы начать редактирование. Идея состоит в том, что обычно они сначала хотят стереть все поле, так что это избавляет от необходимости двойного нажатия и выбора всего.

.час

- (IBAction)urlEditingDidBegin: (id)sender;

.m

- (IBAction)urlEditingDidBegin:(id)sender
{
    NSLog(@"Select Contents");

    [sender setText:@"Why isn't this working"];
    [sender selectAll:self];
}

В конструкторе интерфейса я связал событие UITextField "Editing Did Begin" с владельцем файла и связал его с моим методом urlEditingDidBegin.

Когда я нажимаю на UITextField, текст в поле меняется на "Почему это не работает", что доказывает, что метод запускается и что отправитель верен, однако текст не выбирается.

Что я делаю неправильно?

3 ответа

Решение

Как правило, если вы хотите предоставить пользователю простой способ очистки текста, добавьте очистку, установив кнопку очистки "Появляется во время редактирования" в XIB или вызвав

[textField setClearButtonMode:UITextFieldViewModeWhileEditing];

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

На самом деле текст был выбран, но без визуальной обратной связи. Например, посмотрите на этот ответ

Установить делегат себе и передать <UITextFieldDelegate> в вашем.h файле

Другие вопросы по тегам