Domanda Aggiunta del pulsante "Cancella" a un iPhone UITextField


Come si aggiunge quel piccolo pulsante "X" sul lato destro di un campo UIText che cancella il testo? Non riesco a trovare un attributo per l'aggiunta di questo sottocontrollo in Interface Builder nell'SDK di iOS 2.2 per iPhone.

Nota: In Xcode 4.xe versioni successive (iPhone 3.0 SDK e versioni successive), puoi farlo in Interface Builder.


133


origine


risposte:


Questo pulsante è una sovrapposizione incorporata fornita dalla classe UITextField, ma come per l'SDK di iPhone OS 2.2, non c'è alcun modo per impostarlo tramite Interface Builder. Devi abilitarlo programmaticamente.

Aggiungi questa riga di codice da qualche parte (viewDidLoad, ad esempio):

myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing;

AGGIORNARE: L'ultima versione di Xcode IB supporta questa proprietà.


281



Puoi anche impostarlo direttamente da Interface Builder sotto Attributes Inspector.

enter image description here

Tratto da XCode 5.1


41



puoi aggiungere un pulsante di cancellazione personalizzato e controllare le dimensioni e ogni cosa usando questo:

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];

32



Swift 3:

textField.clearButtonMode = UITextFieldViewMode.WhileEditing

o ancora più breve:

textField.clearButtonMode = .whileEditing

27



Obiettivo C:

self.txtUserNameTextfield.myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing;

Swift:

txtUserNameTextfield.clearButtonMode = UITextFieldViewMode.WhileEditing;

7



questo non funziona, fai come me:

sWIFT:

customTextField.clearButtonMode = UITextFieldViewMode.Always

customTextField.clearsOnBeginEditing = true;

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

4



Su Xcode 8 (8A218a):

Swift:

textField.clearButtonMode = UITextFieldViewMode.whileEditing;

La "W" è passata dal capitale al non-cap "w".


4