2008-11-26 24 views

Antwort

272

Diese Schaltfläche ist ein integriertes Overlay, das von der UITextField-Klasse bereitgestellt wird, aber ab dem iPhone OS 2.2 SDK gibt es keine Möglichkeit, es über den Interface Builder einzurichten. Sie müssen es programmgesteuert aktivieren.

diese Codezeilen hinzufügen irgendwo (viewDidLoad, zum Beispiel):

myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing; 

UPDATE: Die neueste Version von Xcode IB diese Eigenschaft nicht unterstützt.

+2

- Hallo. Kann ich die Größe des ClearButtonMode auf TextField bearbeiten .. – NiKKi

32

Sie können benutzerdefinierte Löschtaste hinzuzufügen und die Größe steuern und alles, was dies mit:

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

Sie auch diese von Interface Builder unter dem Attribute Inspector direkt einstellen.

enter image description here

von XCode 5.1

Genommen
+1

Beachten Sie, dass die Frage speziell nach dem 2.2 SDK fragt, und stellt fest, dass diese Option in späteren Versionen in Interface Builder verfügbar ist. –

25

Swift 3:

textField.clearButtonMode = UITextFieldViewMode.WhileEditing 

oder noch kürzer:

textField.clearButtonMode = .whileEditing 
+0

Fix enum type. Darf nicht vom Großbuchstaben ausgehen. –

6

Objective C:

self.txtUserNameTextfield.myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing; 

Swift:

txtUserNameTextfield.clearButtonMode = UITextFieldViewMode.WhileEditing; 
4

dies nicht funktionieren, wie ich tun:

swift:

customTextField.clearButtonMode = UITextFieldViewMode.Always 

customTextField.clearsOnBeginEditing = true; 

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

Auf Xcode 8 (8A218a):

Swift:

textField.clearButtonMode = UITextFieldViewMode.whileEditing; 

Das "W" ging von Kapital zu Nicht-Cap "w".

-2

Auf Xcode Version 8.1 (8B62) kann dies direkt in Attribute Inspector getan werden. Wählen Sie das Textfeld aus, und wählen Sie dann die entsprechende Option aus der Dropdown-Liste "Löschen" aus, die sich im Attribute-Inspektor befindet.