我对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" + "--- "
}
}
使用此方法,
如果要手动清除文本字段,请使用此代码:
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
}
}
只需使用textFieldDidBeginEditing
方法来处理焦点更改并清除文本。
func textFieldDidBeginEditing(textField: UITextField) {
textField.text = ""
}
您可以轻松地快速清除TextField
emailTextField.text?.removeAll()
passwordTextField.text?.removeAll()
confirmPasswordTextField.text?.removeAll()
func textFieldDidBeginEditing(textField: UITextField)
{
if fi.text == "0"
{
fi.text = ""
}
}
根据您要寻找的内容,有几种方法可以解决此问题。第一种是使用占位符而不是将文本设置为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,则可以将其删除。
func textFieldDidBeginEditing(textField: UITextField) {
fi.text = ""
}
func textFieldDidEndEdition(textField: UITextField) {
if fi.text isEqualToString:@"" {
fi.text = @""
}
}