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,这对我来说也是一个新东西!谢谢你。如果这个答案对你有帮助,你介意投票吗?