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" + "--- "
}
}
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
}
}
Utilisez simplement la méthode textFieldDidBeginEditing
pour gérer le changement de focus et effacer le texte.
func textFieldDidBeginEditing(textField: UITextField) {
textField.text = ""
}
func textFieldDidBeginEditing(textField: UITextField)
{
if fi.text == "0"
{
fi.text = ""
}
}
Vous pouvez facilement effacer le TextField dans Swift
emailTextField.text?.removeAll()
passwordTextField.text?.removeAll()
confirmPasswordTextField.text?.removeAll()
func textFieldDidBeginEditing(textField: UITextField) {
fi.text = ""
}
func textFieldDidEndEdition(textField: UITextField) {
if fi.text isEqualToString:@"" {
fi.text = @""
}
}
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é.