2016-05-07 22 views
5

Ho domanda su TextFiled in rapidacome cancellare il campo di testo?

come posso testo in chiaro in TextFiled quando clicco su di esso

mia textfiled.text = "0"

voglio quando clicco su textfiled eliminare il "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" + "--- " 
    } 
} 
+1

possibilmente correlate: http://stackoverflow.com/questions/28530167/objective-c-auto-erase-nstextfield-string –

+0

sto usando rapida –

+1

Così che cosa, è lo stesso concetto. –

risposta

12

utilizzare questo metodo,

Se si desidera cancellare manualmente l'uso sul campo di testo di questo codice:

textField.text = "" 

Se si desidera che il campo di testo a vuoto quando si inizia la modifica, utilizzare il metodo delegato di seguito :

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

Se si utilizzano più campi di testo, utilizzare il seguente metodo:

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

ringraziamento è un lavoro –

+1

Ok sempre il benvenuto –

+0

Che cosa succede se ho due textfiled, 1, 2, e quando clicco sul primo 1textfiled toglierò "0", e poi quando clicco su secondo textfiled2 rimuoverà "0", Voglio restituire il valore del primo file di testo quando clicco su textfiled2 o ovunque –

1

Ci sono un paio di modi in cui è possibile risolvere questo problema, a seconda di ciò che si sta cercando. Il primo è quello di utilizzare un segnaposto invece di impostare il testo a 0. Un segnaposto scompare ogni volta che l'utente inizia a digitare e riapparire se si digita nulla in:

fi.placeholder = "0" 

se si desidera che il 0 come valore e non solo un segnaposto, ci sono molti metodi incorporati per tenere traccia di modifica/inserimento/restituzione/etc di un campo di testo. Ciò richiede tuttavia l'implementazione di UITextFieldDelegate, che sembra che tu abbia già fatto.

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 
    } 
} 

La var è la prima volta solo è presente in modo che l'utente può digitare 0 se si sceglie. Se l'utente non dovrebbe essere in grado di digitare 0, potrebbe essere rimosso.

+0

grazie mille, il codice non funziona con me penso che dovremmo usare func textFieldDidBeginEditing –

+0

Ops, letto male la questione che sarà corretto. Essenzialmente la stessa cosa Stai attento con le altre risposte anche se sono in gran parte incomplete; se si imposta sempre il testo su "" all'inizio della modifica, ogni volta che l'utente entra nel campo, qualsiasi testo digitato verrà eliminato. – treyhakanson

+0

oh, ok grazie –

4

Basta utilizzare textFieldDidBeginEditing metodo per gestire il cambiamento messa a fuoco, e testo in chiaro.

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

grazie sei al lavoro –

2
func textFieldDidBeginEditing(textField: UITextField) 
{ 
    if fi.text == "0" 
    { 
     fi.text = "" 
    } 
} 
+0

grazie, è un lavoro –

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

func textFieldDidEndEdition(textField: UITextField) { 

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

}