如何自动清除文本字段

问题描述 投票:16回答:6

我对Swift中的UITextField()有疑问。单击时如何清除文本字段中的文本?

我的textField.text = "0"。我想在单击文本字段时自动删除数字“ 0”:

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" + "---  "
    }
 }
ios swift iphone swift2 uitextfield
6个回答
34
投票

使用此方法,

如果要手动清除文本字段,请使用此代码:

textField.text = ""

如果您希望在开始编辑时使文本字段为空,请使用下面的委托方法:

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

如果使用多个文本字段,请使用以下方法:

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

5
投票

只需使用textFieldDidBeginEditing方法来处理焦点更改并清除文本。

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

5
投票

您可以轻松地快速清除TextField

emailTextField.text?.removeAll()
passwordTextField.text?.removeAll()
confirmPasswordTextField.text?.removeAll()

3
投票
func textFieldDidBeginEditing(textField: UITextField)
{
    if fi.text == "0"
    {
        fi.text = ""
    }
}

2
投票

根据您要寻找的内容,有几种方法可以解决此问题。第一种是使用占位符而不是将文本设置为0。只要用户开始输入,占位符就会消失,如果用户在以下位置未输入任何内容,则占位符会重新出现:

fi.placeholder = "0"

如果要让0成为值,而不仅仅是占位符,则有许多内置方法可跟踪文本字段的编辑/输入/返回/等。这确实需要实现UITextFieldDelegate,但是看来您已经完成了。

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

这是第一次使用var,因此用户可以选择输入0。如果用户不能键入0,则可以将其删除。


2
投票
func textFieldDidBeginEditing(textField: UITextField) {
        fi.text = ""
    }

func textFieldDidEndEdition(textField: UITextField) {

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

}
© www.soinside.com 2019 - 2024. All rights reserved.