Swift UITextField在场景中不可见

Swift UITextField在场景中不可见,swift,uitextfield,skscene,addsubview,Swift,Uitextfield,Skscene,Addsubview,我尝试将UITextField添加到SKScene中。我正在使用Swift 3和Xcode 8。我尝试了以下方法: import Foundation import SpriteKit class MyScene: SKScene { init(size: CGSize, score: Highscore, optionen: GameOptions) { super.init(size: size) let stepsTextField = UIT

我尝试将
UITextField
添加到
SKScene
中。我正在使用Swift 3和Xcode 8。我尝试了以下方法:

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")
    }

}
但我得到的只是一个黑屏。我错过了什么


谢谢你的帮助

您需要将其添加到didMove中(to view: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)
}

嗨,谢谢,这很有效。但UITextField似乎不“属于”场景。当我更改场景时,如run(SKAction.sequence)([SKAction.wait(forDuration:5.0),SKAction.run(){let-relead=SKTransition.flipHorizontal(withDuration:0.5)let-Scene=OtherScene(size:size,optionen:optionen)self.view?.presentScene(场景,transition:releal)}]))UITextField保持可见。替换场景不会改变UITextField所在的视图?明白了:stepsTextField.removeFromSuperview()Textfield必须手动从视图中删除。这太棒了@Dinean,这对我来说也是一个新东西!谢谢你。如果这个答案对你有帮助,你介意投票吗?