Frage

Wie fügen Sie das kleine „X“ -Taste auf der rechten Seite eines UITextField, das den Text löscht? Ich kann nicht ein Attribut für das Hinzufügen dieser Untersteuerung im Interface Builder in den iPhone O 2.2 SDK finden.

Hinweis: In Xcode 4.x und höher (iPhone 3.0 SDK und höher), können Sie dies im Interface Builder tun

.
War es hilfreich?

Lösung

Diese Schaltfläche ist ein Einbau-Overlay, das durch die UITextField-Klasse zur Verfügung gestellt, aber erst nach dem iPhone OS 2.2 SDK, gibt es keine Möglichkeit, es über Interface Builder zu setzen. Sie müssen es programmatisch aktivieren.

Fügen Sie diese Zeile Code irgendwo (viewDidLoad, zum Beispiel):

myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing;

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

Andere Tipps

Sie können dies auch direkt von Interface Builder unter dem Attribute-Inspektoren eingestellt.

eingeben Bild Beschreibung hier

Genommen von XCode 5.1

Swift 4 +:

textField.clearButtonMode = UITextField.ViewMode.whileEditing

oder noch kürzer:

textField.clearButtonMode = .whileEditing

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

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

Objective C:

self.txtUserNameTextfield.myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing;

Swift:

txtUserNameTextfield.clearButtonMode = UITextField.ViewMode.WhileEditing;

Swift 4 (angepasst von Kristopher Johnson Antwort)

textfield.clearButtonMode = .always

textfield.clearButtonMode = .whileEditing

textfield.clearButtonMode = .unlessEditing

textfield.clearButtonMode = .never

diese nicht funktionieren, tun wie ich:

  

swift:

customTextField.clearButtonMode = UITextField.ViewMode.Always

customTextField.clearsOnBeginEditing = true;

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

Auf Xcode 8 (8A218a):

Swift:

textField.clearButtonMode = UITextField.ViewMode.whileEditing;

Die "W" ging von Kapital zu nicht-Kappe "w".

  func clear_btn(box_is : UITextField){
    box_is.clearButtonMode = .always
    if let clearButton = box_is.value(forKey: "_clearButton") as? UIButton {
        let templateImage =  clearButton.imageView?.image?.withRenderingMode(.alwaysTemplate)

        clearButton.setImage(templateImage, for: .normal)
        clearButton.setImage(templateImage, for: .highlighted)

        clearButton.tintColor = .white

     }
}

Auf Xcode Version 8.1 (8B62) kann es direkt in Attributen Inspector erfolgen. Wählen Sie das Textfeld ein und wählen Sie die entsprechende Option aus Clear-Taste Drop-Down-Box, die in Attribute Inspector befindet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top