web-dev-qa-db-fra.com

comment effacer le champ de texte?

j'ai une question sur TextField dans Swift

comment effacer du texte dans TextField quand je clique dessus

mon textfiled.text = "0"

je veux quand je clique sur le fichier texte supprimer le numéro "0" automatica

import UIKit
class ViewController: UIViewController, UITextFieldDelegate {

    @IBOutlet var lbltext: UILabel!
    @IBOutlet var scrolview1: UIScrollView!
    @IBOutlet var fi: UITextField!
    @IBOutlet var scrolviewus: UIScrollView!
    @IBOutlet var counterLabel: UILabel!
    override func viewDidLoad() {
        super.viewDidLoad()
        fi.text = "0"
       }

       override func didReceiveMemoryWarning() {
         super.didReceiveMemoryWarning()
         // Dispose of any resources that can be recreated.
       }

       @IBAction func button(sender: AnyObject) {
        lbltext.numberOfLines = 0
        lbltext.text! = lbltext.text! + "\n" + fi.text! + "\n" + "---  "
    }
 }
13
X.BOZO

Utilisez cette méthode,

Si vous souhaitez effacer manuellement le champ de texte, utilisez ce code:

textField.text = ""

Si vous souhaitez que le champ de texte soit vide lorsque vous commencez à modifier, utilisez la méthode déléguée ci-dessous:

func textFieldDidBeginEditing(textField: UITextField) {
    textField.text = ""
}

Si vous utilisez plusieurs champs de texte, utilisez la méthode ci-dessous:

func textFieldDidBeginEditing(textField: UITextField) { 
    if (textField == oneTextField) {
       textField.text = ""
    } 
    else if (textField == anotherTextField) {
       // Perform any other operation
    } 
}
29
Iyyappan Ravi

Utilisez simplement la méthode textFieldDidBeginEditing pour gérer le changement de focus et effacer le texte.

func textFieldDidBeginEditing(textField: UITextField) {
    textField.text = ""
}
5
brimstone
func textFieldDidBeginEditing(textField: UITextField)
{
    if fi.text == "0"
    {
        fi.text = ""
    }
}
3
Jayesh Miruliya

Vous pouvez facilement effacer le TextField dans Swift

emailTextField.text?.removeAll()
passwordTextField.text?.removeAll()
confirmPasswordTextField.text?.removeAll()
2
Apps Freax
func textFieldDidBeginEditing(textField: UITextField) {
        fi.text = ""
    }

func textFieldDidEndEdition(textField: UITextField) {

     if fi.text isEqualToString:@"" {
          fi.text = @""
     }

}
2
Gaurav Patel

Il existe plusieurs façons de résoudre ce problème, selon ce que vous recherchez. La première consiste à utiliser un espace réservé au lieu de mettre le texte à 0. Un espace réservé disparaîtra chaque fois que l'utilisateur commencera à taper et réapparaîtra s'il ne saisit rien:

fi.placeholder = "0"

si vous voulez que le 0 soit la valeur et pas seulement un espace réservé, il existe de nombreuses méthodes intégrées pour suivre l'édition/la saisie/le retour/etc. d'un champ de texte. Cela nécessite cependant l'implémentation de UITextFieldDelegate, ce qui semble avoir déjà été fait.

var isFirstTime = true

override viewDidLoad() {
     super.viewDidLoad()
     fi.delegate = self
}

func textViewDidBeginEditing(textView: UITextView) {
    isFirstTime = false
    if fi.text == "0" {
        fi.text = ""
    }
}

func textViewDidEndEditing(textView: UITextView) {
    if fi.text.isEmpty {
        fi.text = "0"
        isFirstTime = true
    }
}

C'est la première fois que var n'est présent que pour que l'utilisateur puisse taper 0 s'il le souhaite. Si l'utilisateur ne doit pas pouvoir taper 0, il peut être supprimé.

2
treyhakanson