swift2 如何自动清除文本字段

holgip5t  于 2022-11-06  发布在  Swift
关注(0)|答案(8)|浏览(282)

我有一个关于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" + "---  "
    }
 }
mo49yndu

mo49yndu1#

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

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

vzgqcmou2#

您可以在swift中轻松清除TextField

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

8yparm6h3#

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

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

kqqjbcuj4#

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

u3r8eeie5#

有几种方法可以解决此问题,具体取决于您要查找的内容。第一种方法是使用占位符,而不是将文本设置为0。当用户开始键入时,占位符将消失,当用户在以下位置中未键入任何内容时,占位符将重新出现:

fi.placeholder = "0"

如果您希望0是值而不仅仅是占位符,那么有很多内置方法可以跟踪文本字段的编辑/输入/返回等操作。2但是,这确实需要实现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,则可以将其删除。

cqoc49vn

cqoc49vn6#

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

func textFieldDidEndEdition(textField: UITextField) {

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

}
ujv3wf0j

ujv3wf0j7#

使用文本字段右上角的小按钮。创建该按钮的操作。

@IBAction func removeSearchTFTapped(_ sender: Any) {
    searchTF.text = ""
}
disbfnqx

disbfnqx8#

只需使用文本字段clearsOnBeginEditing属性。

textfield.clearsOnBeginEditing = true

相关问题