我有一个文本字段来输入单词,当(自动)并按下按钮(按钮)时,它应该打印出来(正确)。问题是它无法正常工作。
当我在办公室接触时,根据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 {
}
}
}
答案 0 :(得分:3)
您的var TextField是方法didMoveToView的本地,因此无法从touchesBegan内部访问。将此var移出didMoveToView进入类级别。
此外,根据惯例,vars应以小写字母开头:textField而不是TextField。