【问题标题】:Why is my Swift code function only running once?为什么我的 Swift 代码函数只运行一次?
【发布时间】:2019-09-02 12:39:55
【问题描述】:

所以我是编程新手,我正在做一个 Swift 税收计算器学习练习。目前,我只是在开始插入计算之前尝试设置一些东西。

我正在尝试获取代码以获取文本输入,将其插入字符串并在文本视图中打印。

到目前为止,我的代码运行一次,但从那时起它似乎停止运行。我本质上只是希望我的代码在用户单击第一个输入文本字段时自行重置。

我尝试将文本视图设置为“”,但这似乎不起作用。它只是插入“”,这不是我想要的。

这是我的代码:

class ViewController: UIViewController {

    @IBOutlet weak var income: UITextField!

    @IBOutlet weak var takeHomePay: UITextView!

    override func viewDidLoad() {
        super.viewDidLoad()
        income.delegate = self
        // Do any additional setup after loading the view.

    }

    @IBAction func calculateTapped(_ sender: Any) {
        if takeHomePay.text.isEmpty {
        takeHomePay.text = "You are earning $\(income.text!)"
        } else if !takeHomePay.text.isEmpty {
            takeHomePay.text = "You need to enter a figure"
        } else {
            takeHomePay.text = "ERROR"
        }

    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        income.resignFirstResponder()
    }

}

extension ViewController : UITextFieldDelegate {
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        return true
    }

}

为什么我的函数只运行一次?每次更改输入时,我都希望看到输出发生变化。可能是一个简单的解决方法,但正如我所说,我只是在学习。

我们将不胜感激!

【问题讨论】:

  • 您是在谈论“calculateTapped”功能吗?您希望在您的文本字段的每个条目上运行不是吗?

标签: ios swift xcode ibaction iboutlet


【解决方案1】:

将代理添加到viewDidLoad内的textView

takeHomePay.delegate = self

然后实施

func textViewDidChange(_ textView: UITextView) {
        if takeHomePay.text.isEmpty {
        takeHomePay.text = "You are earning $\(income.text!)"
        } else {
            takeHomePay.text = "You need to enter a figure"
        } 
}

由于 textView 为空或不为空,因此无法到达最底部


class VCName:UIViewController,UITextViewDelegate{}

【讨论】:

  • 这会引发错误“无法将类型 'ViewController' 的值分配给类型 'UITextViewDelegate'。我错过了什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-20
  • 2020-07-31
相关资源
最近更新 更多