2015-06-09 2 views
0

У меня есть текстовое поле для ввода слова, которое, когда (авто) и нажмите кнопку (контрольная кнопка), должно быть распечатано (правильно). Проблема в том, что он не работает.TextField не работает

Когда я нахожусь в офисе touchesBegan: if (TextField.text == "auto") перечисляет мне ошибку:

Use Unresolved identifier "TextField".

Когда это условие удалено, как и все отлично работает и пишет мне (правильный).

Я попробовал завершить функции touchBegan, переместился для переопределения func didMoveToView (view: 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 { 
     } 
    } 
} 

ответ

3

Ваш вар TextField является локальным по отношению к методу didMoveToView поэтому не могут быть доступны внутри touchesBegan. Переместите этот var вне doMoveToView на уровень класса.

Кроме того, по соглашению vars должно начинаться с строчной буквы: textField, а не TextField.

+0

Да, вы правы, я уже решил проблему, спасибо – Darci

Смежные вопросы