如何验证游戏的用户输入,而无需他们按“提交”#39;按钮每次

时间:2015-08-07 06:35:09

标签: swift

我有任意数量的整数= [3,12,9] 用户需要输入每个号码。如果他们写出正确的数字,文本字段将重置并输入下一个数字。没有按下提交按钮。

到目前为止,

功能还没有发挥作用。

func UserInput(textView:UITextView!)
{
    if(input == nil )
    {
        return;
    }


    var inputs = input!.text.toInt();

    var x = 0
    while (x < numbers.count){
    if( inputs != nil)
    {

        if(inputs! == numbers[x] )
        {
            println("Correct!");
            input.text = ""


            x++
            //println(x)

        }
        else
        {
            println("Incorrect!");


        }
    }
    }
}

1 个答案:

答案 0 :(得分:1)

您可以使用EditingChanged中的事件textField。有了它,您可以通过这种方式获得用户的实时输入:

import UIKit

class ViewController: UIViewController {


    var numbers = [3,12,9]
    @IBOutlet weak var input: UITextField!
    override func viewDidLoad() {
        super.viewDidLoad()
        input.addTarget(self, action:"edited", forControlEvents:UIControlEvents.EditingChanged)
    }

    func edited() {
        for item in numbers {

            if input.text == "\(item)" {
                println("correct")
                //I set here timer so if user enter correct input then it will remove text after some time
                var timer = NSTimer.scheduledTimerWithTimeInterval(0.4, target: self, selector: Selector("resetText"), userInfo: nil, repeats: false)

            } else {
                println("incorrect")
            }
        }
    }
    //This method will call after some time use if user enter correct input
    func resetText(){
        input.text = ""
    }
}

希望它会有所帮助。