TextField不起作用

时间:2015-06-09 17:55:51

标签: swift sprite-kit

我有一个文本字段来输入单词,当(自动)并按下按钮(按钮)时,它应该打印出来(正确)。问题是它无法正常工作。

当我在办公室接触时,根据if (TextField.text == "auto")列出错误:

  

使用未解析的标识符" TextField"。

当这个条件被删除,因为一切正常并写信给我(正确)。

我试过complet函数touchesBegan移动到覆盖func didMoveToView(视图:SKView)和TextField.text已解决,但它无法正常工作。

我在SpriteKit工作

我犯错误的地方? 谢谢

这是我的代码:

class level1: SKScene{
    let logo = SKSpriteNode(imageNamed: "Q1")
    let check = SKSpriteNode(imageNamed: "check")
    let number = SKSpriteNode(imageNamed: "N1")

    override func didMoveToView(view: SKView) {
        scene!.scaleMode = .AspectFill
        scene!.scaleMode = SKSceneScaleMode.ResizeFill

        var background = SKSpriteNode(imageNamed: "Background")
        background.size = CGSizeMake(self.size.width, self.size.height)
        background.position = CGPointMake(self.size.width/2, self.size.height/2)
        self.addChild(background)

        let screenSize: CGRect = UIScreen.mainScreen().bounds
        let screenWidth = screenSize.width;
        let screenHeight = screenSize.height;

        var TextField = UITextField(frame : CGRect(x:10, y:(screenHeight/2.25), width:(screenWidth - 20), height:(screenHeight/15) ))
        self.view!.addSubview(TextField)
        TextField.backgroundColor = UIColor.whiteColor()
        TextField.textAlignment = .Center
        TextField.font = UIFont(name: "Helvetica Neue", size: 23)

        number.position = CGPoint(x: size.width * 0.5, y: size.height * 0.95)
        addChild(number)

        logo.position = CGPoint(x: size.width * 0.5, y: size.height * 0.72)
        addChild(logo)

        check.position = CGPointMake(size.width/2,size.height/2 - 43)
        check.name = "checkbutton"
        addChild(check)
    }

    override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
        let touch = touches.first as! UITouch
        let touchLocation = touch.locationInNode(self)
        let touchedNode = self.nodeAtPoint(touchLocation)

        if(touchedNode.name == "checkbutton"){
            if(TextField.text == "auto"){
                println("CORRECT")
            }
        } else {
        }
    }
}

1 个答案:

答案 0 :(得分:3)

您的var TextField是方法didMoveToView的本地,因此无法从touchesBegan内部访问。将此var移出didMoveToView进入类级别。

此外,根据惯例,vars应以小写字母开头:textField而不是TextField。