2016-09-06 33 views
2

使用我的代码时,由于文本字段为空,显示viewcontroller时隐藏按钮。然而,按钮应显示文本字段不再为空时。按钮没有显示我的代码 - 我做错了什么?当文本字段等于零并显示不为零时隐藏按钮

let allInputValues = nameInput.text! + middleInput.text! + surnameInput.text! 

     if allInputValues == "" { 
      nextButton.hidden = true 
      finishButton.hidden = true 
     } else { 
      nextButton.hidden = false 
      finishButton.hidden = false 
     } 

希望你能帮助我

+0

哪里是你的代码发布? – rmaddy

+0

上述代码何时执行?上下文的代码不够用。 – Firo

回答

3

将您的视图控制器设置为textField委托。然后使用textFieldDidEndEditing()为每个textField运行您的支票,并保持隐藏按钮或显示按钮。

class MyViewController: UIViewController, UITextFieldDelegate { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     nextButton.hidden = true 
     finishButton.hidden = true 

     nameInput.delegate = self 
     middleInput.delegate = self 
     surnameInput.delegate = self 
    } 

    func textFieldDidEndEditing(textField: UITextField) { 
     let allInputValues = nameInput.text! + middleInput.text! + surnameInput.text! 

     if allInputValues == "" { 
      nextButton.hidden = true 
      finishButton.hidden = true 
     } else { 
      nextButton.hidden = false 
      finishButton.hidden = false 
     } 
    } 
} 

斯威夫特3

class MyViewController: UIViewController, UITextFieldDelegate { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     nextButton.isHidden = true 
     finishButton.isHidden = true 

     nameInput.delegate = self 
     middleInput.delegate = self 
     surnameInput.delegate = self 
    } 

    func textFieldDidEndEditing(textField: UITextField) { 
     let allInputValues = nameInput.text! + middleInput.text! + surnameInput.text! 

     if allInputValues == "" { 
      nextButton.isHidden = true 
      finishButton.isHidden = true 
     } else { 
      nextButton.isHidden = false 
      finishButton.isHidden = false 
     } 
    } 
} 
+0

添加了所有代码,包括UITextFieldDelegate,viewDidLoad中的委托和viewDidLoad之后的函数,但没有任何运气。当文本框为空时,按钮仍然可见。 –

+0

@ D.Finna尝试我的编辑,以隐藏按钮开始 – Shades

+1

当然! D:D –

0

你只运行了“如果”一次,在程序的开始。将其放置到每次值更改时都会运行的循环中。