【问题标题】:If else statement depending on textfield (swif3)If else 语句取决于文本字段 (swif3)
【发布时间】:2017-07-04 01:50:50
【问题描述】:

我希望我的代码仅在文本文件中有文本时才显示标签,如果没有文本,则标签应该被隐藏。就是这样。我下面的代码没有做我上面描述的事情。

   import UIKit
class ViewController: UIViewController {

  @IBOutlet var label: UILabel!
  @IBOutlet var txtfield: UITextField!
 override func viewDidLoad() {
super.viewDidLoad()
appear()

  }
   func appear() {

if (txtfield.text?.isEmpty)! {
    label.isHidden = true

}
else {
    label.isHidden = false
}}}

【问题讨论】:

  • 文本字段如何填充?以编程方式从另一个视图控制器?还是用户在上面写了什么?
  • @Pochi 用户在上面写了一些东西。
  • 所以你希望标签在用户在这个视图控制器上写一些东西之后出现/消失。对吗?
  • @Pochi 是的,没错

标签: ios swift3 delegates textfield is-empty


【解决方案1】:

您的代码将不起作用,因为仅在加载视图控制器时才执行一次检查。

你需要做的是每次用户完成文本字段的编辑时运行appear()函数。

所以只需将你的文本视图的委托设置到这个视图控制器并实现这个功能:

optional func textViewDidEndEditing(_ textView: UITextView)

https://developer.apple.com/documentation/uikit/uitextviewdelegate/1618628-textviewdidendediting

然后只需调用它里面的appear()。

编辑:文本字段版本

optional func textFieldDidEndEditing(_ textField: UITextField)

https://developer.apple.com/documentation/uikit/uitextfielddelegate/1619591-textfielddidendediting

【讨论】:

  • 我使用的是文本字段而不是文本视图。
  • 然后使用textfield版本,也一样。
  • 或者保留一个按钮并在按钮点击时调用appear()函数
【解决方案2】:

使用下面的代码。

 override func viewWillAppear(_ animated: Bool)
    {
        textChanged(txtField)
    }

    func textChanged(_ textField: UITextField) {

        if textField.text == ""
        {
            textField.isHidden = true
        }
        else
        {
            textField.isHidden = false
        }
        print("Hello")
    }

    override func viewDidLoad()
    {
        super.viewDidLoad()
        txtField.addTarget(self, action: #selector(textChanged(_:)),for: .allEvents)
    }
  • func textChanged 将隐藏你的 textField 如果它是空的。
  • 将其添加到viewWillAppear 将在屏幕出现时检查textField
  • viewDidLoad 中的目标 (textChanged) 被添加到每个事件的 textField 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    • 2017-02-05
    相关资源
    最近更新 更多