ios - UITextField 输入不工作

标签 ios swift

我正在 Xcode 中制作一个应用程序,其中出现一个屏幕,要求您将 2 个数字相乘,然后您将乘积放在文本字段中,如果答案正确,灰色按钮将变为蓝色。

问题是即使我在测试应用程序时确定我的答案它也不会工作它不会工作,按钮将保持灰色并且应用程序会认为答案是错误的,请任何人帮助我并告诉我我的代码有什么问题!

    var firstNumber = arc4random()
    var secondNumber = arc4random()
    @IBOutlet weak var AnswerButton: UIButton!
    @IBOutlet weak var OutcomeNumber: UILabel!
    @IBOutlet weak var textField: UITextField!


    @IBAction func textFieldEditingDidChange(_ sender: Any) {
        print("textField: \(textField.text)")
        if ValidatePassword(text: textField.text!) {
            AnswerButton.isEnabled = true
        } else {
            AnswerButton.isEnabled = false
        }
    }

    @IBAction func AnswerButtonPressed(_ sender: Any) {
        print("you may enter")

        view.backgroundColor = UIColor.green
    }

    func ValidatePassword(text: String) -> Bool {
        var result = false
        if text == ("(\(firstNumber*secondNumber))") {
            result = true
        }
        return result

    }

    @IBAction func GObutton(_ sender: Any) {
        OutcomeNumber.text = "\(firstNumber)×\(secondNumber)"
        firstNumber = arc4random_uniform(10)
        secondNumber = arc4random_uniform(10)
    }

    @IBAction func GoMedium(_ sender: Any) {
        OutcomeNumber.text = "\(firstNumber)×\(secondNumber)"
        firstNumber = arc4random_uniform(50)
        secondNumber = arc4random_uniform(50)
    }

    @IBAction func GoHard(_ sender: Any) {
        OutcomeNumber.text = "\(firstNumber)×\(secondNumber)"
        firstNumber = arc4random_uniform(100)
        secondNumber = arc4random_uniform(100)
    }


        override func viewDidLoad() {
        super.viewDidLoad()
        AnswerButton.isEnabled = false
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

最佳答案

可能问题出在这部分:

func ValidatePassword(text: String) -> Bool {
    var result = false
    if text == "(\(firstNumber) *  \(secondNumber))" {
        result = true
    }
    return result

}

*\(secondNumber) 之间是两个空格。当您尝试使用文本 (1 * 3) 时,此函数返回 false 但使用 (1 * 3) 返回 true

另一方面,最好使用正则表达式来评估它。

Playground 中的结果 enter image description here

关于ios - UITextField 输入不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42179432/

相关文章:

ios - Snapchat更新状态栏iOS7更新

ios - 在 Swift 中从 IBOutletCollection 获取项目

C++ Mac Xcode : Undefined symbols for architecture x86_64:

objective-c - UItableView 搜索韩语文本

cocoa-touch - NSMutableURLRequest:无法通过 PUT 请求添加正文

ios - viewDidLoad 之后如何创建/添加 UIView?

swift - 如何在 Swift 中编写通用函数来进行条件向下转型?

ios - 无法将类型 'String' 的值分配给类型 'UILabel!'

swift - Swift 中的 IMAAdsLoader 错误但不是 Objective C

c# - 使用 Xamarin iOS 获取可用的应用内存