swift - pelicula - Cómo verificar si un campo de texto está vacío o no en forma rápida
fahrenheit 451 ray bradbury (14)
Swift 4 / xcode 9
IBAction func button(_ sender: UIButton) {
if (textField1.text?.isEmpty)! || (textfield2.text?.isEmpty)!{
..............
}
}
Estoy trabajando en el siguiente código para verificar los campos de texto textField1
y textField2
si hay alguna entrada en ellos o no.
La instrucción IF
no está haciendo nada cuando presiono el botón.
@IBOutlet var textField1 : UITextField = UITextField()
@IBOutlet var textField2 : UITextField = UITextField()
@IBAction func Button(sender : AnyObject)
{
if textField1 == "" || textField2 == ""
{
//then do something
}
}
si lo dejé ... dónde ... {
Swift 3 :
if let _text = theTextField.text, _text.isEmpty {
// _text is not empty here
}
Swift 2 :
if let theText = theTextField.text where !theTextField.text!.isEmpty {
// theText is not empty here
}
guardia ... donde ... else {
También puede usar la palabra clave guard
:
Swift 3 :
guard let theText = theTextField.text where theText.isEmpty else {
// theText is empty
return // or throw
}
// you can use theText outside the guard scope !
print("user wrote /(theText)")
Swift 2 :
guard let theText = theTextField.text where !theTextField.text!.isEmpty else {
// the text is empty
return
}
// you can use theText outside the guard scope !
print("user wrote /(theText)")
Esto es particularmente bueno para las cadenas de validación, en formas, por ejemplo. Puede escribir un guard let
para cada validación y devolver o lanzar una excepción si hay un error crítico.
Como ahora en swift 3 / xcode 8 la propiedad de texto es opcional, puedes hacerlo así:
@IBAction func Button(sender: AnyObject) {
if textField1.text.utf16Count == 0 || textField2.text.utf16Count == 0 {
}
}
o:
if ((textField.text ?? "").isEmpty) {
// is empty
}
Alternativamente, puede hacer una extensión como la siguiente y usarla en su lugar:
if (textField.text?.isEmpty ?? true) {
// is empty
}
De acuerdo, esto podría ser tarde, pero en Xcode 8 tengo una solución:
if(textbox.stringValue.isEmpty) {
// some code
} else {
//some code
}
Es demasiado tarde y está funcionando bien en Xcode 7.3.1
if _txtfield1.text!.isEmpty || _txtfield2.text!.isEmpty {
//is empty
}
Manera fácil de verificar
if TextField.stringValue.isEmpty {
}
Mejor y más hermoso uso
@IBAction func Button(sender: AnyObject) {
if textField1.text.isEmpty || textField2.text.isEmpty {
}
}
Otra forma de verificar en tiempo real la fuente del campo de texto:
@IBOutlet var textField1 : UITextField = UITextField()
override func viewDidLoad()
{
....
self.textField1.addTarget(self, action: Selector("yourNameFunction:"), forControlEvents: UIControlEvents.EditingChanged)
}
func yourNameFunction(sender: UITextField) {
if sender.text.isEmpty {
// textfield is empty
} else {
// text field is not empty
}
}
Simplemente comparar el objeto del campo de texto con la cadena vacía ""
no es la forma correcta de hacerlo. Debe comparar la propiedad de text
del campo de text
, ya que es un tipo compatible y contiene la información que está buscando.
@IBAction func Button(sender: AnyObject) {
if textField1.text == "" || textField2.text == "" {
// either textfield 1 or 2''s text is empty
}
}
Swift 2.0:
Guardia
guard let text = descriptionLabel.text where !text.isEmpty else {
return
}
text.characters.count //do something if it''s not empty
si :
if let text = descriptionLabel.text where !text.isEmpty
{
//do something if it''s not empty
text.characters.count
}
Swift 3.0:
Guardia
guard let text = descriptionLabel.text, !text.isEmpty else {
return
}
text.characters.count //do something if it''s not empty
si :
if let text = descriptionLabel.text, !text.isEmpty
{
//do something if it''s not empty
text.characters.count
}
Solo traté de mostrarte la solución en un código simple
@IBAction func Button(sender : AnyObject) {
if textField1.text != "" {
// either textfield 1 is not empty then do this task
}else{
//show error here that textfield1 is empty
}
}
Tal vez sea un poco tarde, pero no podemos verificarlo así:
extension UITextField {
var isEmpty: Bool {
return text?.isEmpty ?? true
}
}
...
if (textField.isEmpty) {
// is empty
}
Una pequeña joya compacta para Swift 2 / Xcode 7
@IBAction func SubmitAgeButton(sender: AnyObject) {
let newAge = String(inputField.text!)
if ((textField.text?.isEmpty) != false) {
label.text = "Enter a number!"
}
else {
label.text = "Oh, you''re /(newAge)"
return
}
}
UIKeyInput
la función incorporada de hasText
: docs
Para Swift 2.3 tuve que usarlo como un método en lugar de una propiedad (como se hace referencia en los documentos):
if textField1.hasText() && textField2.hasText() {
// both textfields have some text
}
Solución Swif t 4.x
@IBOutlet var yourTextField: UITextField!
override func viewDidLoad() {
....
yourTextField.addTarget(self, action: #selector(actionTextFieldIsEditingChanged), for: UIControlEvents.editingChanged)
}
@objc func actionTextFieldIsEditingChanged(sender: UITextField) {
if sender.text.isEmpty {
// textfield is empty
} else {
// text field is not empty
}
}