2017-07-25 39 views
0

我嘗試將UITextField添加到SKScene。我正在使用Swift 3和Xcode 8.我嘗試了以下方法:UITextField在SKScene上不可見

import Foundation 
import SpriteKit 

class MyScene: SKScene { 

    init(size: CGSize, score: Highscore, optionen: GameOptions) { 
     super.init(size: size) 

     let stepsTextField = UITextField(frame: CGRect(x: 20, y: 100, width: 300, height: 40)) 
     stepsTextField.placeholder = "Enter text here" 
     stepsTextField.font = UIFont.systemFont(ofSize: 15) 
     stepsTextField.borderStyle = UITextBorderStyle.roundedRect 
     stepsTextField.autocorrectionType = UITextAutocorrectionType.no 
     stepsTextField.keyboardType = UIKeyboardType.default 
     stepsTextField.returnKeyType = UIReturnKeyType.done 
     stepsTextField.clearButtonMode = UITextFieldViewMode.whileEditing; 
     stepsTextField.contentVerticalAlignment = UIControlContentVerticalAlignment.center 
     self.view?.addSubview(stepsTextField) 
    } 

    required init(coder aDecoder: NSCoder) { 
     fatalError("init(coder:) has not been implemented") 
    } 

} 

但是我得到的只是一個黑屏。我錯過了什麼?

感謝您的幫助!

回答

0

您需要將其添加到didMove(查看:SKView)

通過添加代碼下面的功能,你可以看到你的文本字段。

override func didMove(to view: SKView) { 
    let stepsTextField = UITextField(frame: CGRect(x: 20, y: 100, width: 300, height: 40)) 
    stepsTextField.placeholder = "Enter text here" 
    stepsTextField.font = UIFont.systemFont(ofSize: 15) 
    stepsTextField.borderStyle = UITextBorderStyle.roundedRect 
    stepsTextField.autocorrectionType = UITextAutocorrectionType.no 
    stepsTextField.keyboardType = UIKeyboardType.default 
    stepsTextField.returnKeyType = UIReturnKeyType.done 
    stepsTextField.clearButtonMode = UITextFieldViewMode.whileEditing; 
    stepsTextField.contentVerticalAlignment = UIControlContentVerticalAlignment.center 
    self.view?.addSubview(stepsTextField) 
} 
+0

嗨,謝謝你的工作。但似乎UITextField不屬於SKScene。當我改變場景如跑步(SKAction.sequence(SKAction.sequence(SKAction.wait(forDuration:5.0), SKAction.run(){ 讓reveal = SKTransition.flipHorizo​​ntal(withDuration:0.5) let scene = OtherScene(size:大小,選項:optionen) self.view?.presentScene(scene,transition:reveal) } ])) UITextField保持可見。替換場景不會改變UITextField所在的視圖? – Dinean

+0

瞭解它:stepsTextField.removeFromSuperview()Textfield必須手動從View中刪除。 – Dinean

+0

很棒@Dinean,這對我來說也是一件新事物!感謝那。如果答案對你有幫助,你會介意嗎? –

相關問題