Dodaję niestandardowy przycisk usuwania (UIButton) do UITextField jako rightView, jednak odkryłem, że istnieje pewne dziwne zachowanie w viewMode. Wygląda na to, że nie wyświetla się tak, jak normalny przycisk kasowania, pomimo ustawionego trybu wyświetlania. Przykładowy kod poniżej:UITextField rightViewMode dziwne zachowanie
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;
Przycisk wyświetla prawidłowo w następujących stanach:
- Pokazy podczas ostrych i żaden tekst
- Pokazy podczas skoncentrowany i wpisując
- Ukrywa gdy nie ma ostrości
Jeśli jednak pole tekstowe ma już treść, a Ty zmienisz fokus na to, przycisk "wyczyść" nie ma w jaki sposób. Aby ponownie go wyświetlić, musisz usunąć cały tekst i przełączać ostrość w tę iz powrotem.
Nie znalazłem nikogo innego z tym problemem, więc od jakiegoś czasu drapałem się po tym. Każde światło rzucające bardzo cenne.
Wystarczy, aby wyjaśnić przycisk robi pojawiać w ogóle? Może spróbuj zmniejszyć rozmiar/rozmiar przycisku? Ive miał rzeczy nie pojawiają się, ponieważ były zbyt duże. – Codr
Czy zgłosiłeś błąd firmie Apple? – user500
nie zapomnij dodać właściwości "UITextFieldViewModeAlways". –