在SKScene上看不到UITextField

时间:2017-07-25 13:35:32

标签: 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 = 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")
    }

}

但我得到的只是黑屏。我错过了什么?

感谢您的帮助!

1 个答案:

答案 0 :(得分: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)
}