UITextField rightViewMode странное поведение

Я добавляю пользовательскую кнопку очистки (UIButton) в UITextField как rightView, однако я обнаружил, что в viewMode есть странное поведение. Кажется, он не отображается как обычная кнопка очистки, несмотря на установленный режим просмотра. Пример кода ниже:

UITextField *f = [[[UITextField alloc] init] autorelease];
f.frame = CGRectMake(0, 0, 300, 44);
f.backgroundColor = [UIColor clearColor];
f.textColor = [UIColor whiteColor];

f.clearButtonMode = UITextFieldViewModeNever;

UIImage *image = [UIImage imageNamed:@"Image.png"];

UIButton *b = [UIButton buttonWithType:UIButtonTypeCustom];
b.frame = CGRectMake(0, 0, image.size.width, image.size.height);
[b setImage:image forState:UIControlStateNormal];

f.rightView = b;
f.rightViewMode = UITextFieldViewModeWhileEditing;

Кнопка отображается правильно в следующих состояниях:

Показывает пока сфокусировано и без текстаПоказывает пока сфокусировано и печатаетПрячется когда нет фокуса

Однако, если текстовое поле уже имеет контент, и вы переключаете фокус на него, кнопка очистки не отображается. Чтобы он снова отображался, вы должны удалить весь текст и переключить фокус вперед и назад.

Я не нашел никого другого с этой проблемой, поэтому немного почесал голову над этим. Любая потеря света очень ценится.

Ответы на вопрос(3)

Ваш ответ на вопрос