2008-11-26 19 views
128

Jak dodać ten mały przycisk "X" po prawej stronie pola UITextField, które czyści tekst? Nie mogę znaleźć atrybutu dodawania tej pod-kontroli w programie Interface Builder w pakiecie iPhone OS 2.2 SDK.Dodawanie przycisku "Wyczyść" do iPhone'a UITextField

Uwaga: W Xcode 4.xi nowszych wersjach (iPhone 3.0 SDK i nowsze) można to zrobić w programie Interface Builder.

Odpowiedz

272

Ten przycisk jest wbudowaną nakładką, która jest dostarczana przez klasę UITextField, ale od pakietu iPhone OS 2.2 SDK nie można jej ustawić za pomocą narzędzia Interface Builder. Musisz włączyć programowo.

Dodaj ten wiersz kodu gdzieś (viewDidLoad, na przykład):

myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing; 

UPDATE: Najnowsza wersja Xcode IB nie obsługuje tej właściwości.

+2

- Cześć. Czy mogę edytować rozmiar clearButtonMode na textField .. – NiKKi

32

można dodać niestandardowy wyraźny przycisk i kontrolować wielkość i wszystko to przy użyciu:

UIButton *clearButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[clearButton setImage:img forState:UIControlStateNormal]; 
[clearButton setFrame:frame]; 
[clearButton addTarget:self action:@selector(clearTextField:) forControlEvents:UIControlEventTouchUpInside]; 

textField.rightViewMode = UITextFieldViewModeAlways; //can be changed to UITextFieldViewModeNever, UITextFieldViewModeWhileEditing, UITextFieldViewModeUnlessEditing 
[textField setRightView:clearButton]; 
38

Można również ustawić to bezpośrednio z interfejsu Builder pod Inspektora Atrybuty.

enter image description here

pobranych z XCode 5,1

+1

Należy zwrócić uwagę, że pytanie dotyczy pakietu SDK 2.2 i zwraca uwagę, że ta opcja jest dostępna w Konstruktorze interfejsów w późniejszych wersjach. –

25

Swift 3:

textField.clearButtonMode = UITextFieldViewMode.WhileEditing 

lub nawet krócej:

textField.clearButtonMode = .whileEditing 
+0

Napraw typ wyliczeniowy. Nie można zaczynać od wielkiej litery. –

6

Cel C:

self.txtUserNameTextfield.myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing; 

Swift:

txtUserNameTextfield.clearButtonMode = UITextFieldViewMode.WhileEditing; 
4

ten nie działa, zrób tak jak ja:

SWIFT:

customTextField.clearButtonMode = UITextFieldViewMode.Always 

customTextField.clearsOnBeginEditing = true; 

func textFieldShouldClear(textField: UITextField) -> Bool { 
    return true 
} 
4

Na Xcode 8 (8A218a):

Swift:

textField.clearButtonMode = UITextFieldViewMode.whileEditing; 

Symbol "W" przeszedł z kapitału na bez ograniczenia "w".

-2

W wersji Xcode 8.1 (8B62) można to zrobić bezpośrednio w Inspektorze atrybutów. Wybierz pole tekstowe, a następnie wybierz odpowiednią opcję z rozwijanego menu Wyczyść przycisk, które znajduje się w Inspektorze atrybutów.

Powiązane problemy