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;
Кнопка отображается правильно в следующих состояниях:
Показывает пока сфокусировано и без текстаПоказывает пока сфокусировано и печатаетПрячется когда нет фокусаОднако, если текстовое поле уже имеет контент, и вы переключаете фокус на него, кнопка очистки не отображается. Чтобы он снова отображался, вы должны удалить весь текст и переключить фокус вперед и назад.
Я не нашел никого другого с этой проблемой, поэтому немного почесал голову над этим. Любая потеря света очень ценится.