UITextField 在 SKScene 上不可见
Posted
技术标签:
【中文标题】UITextField 在 SKScene 上不可见【英文标题】:UITextField is not visible on SKScene 【发布时间】:2017-07-25 13:35:32 【问题描述】:我尝试将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】:你需要将它添加到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)
【讨论】:
嗨,谢谢这个工作。但似乎 UITextField 不“属于” SKScene。当我像 run(SKAction.sequence([ SKAction.wait(forDuration: 5.0), SKAction.run() let reveal = SKTransition.flipHorizontal(withDuration: 0.5) let scene = OtherScene(size: size, optionen) 一样更改场景时) optionen) self.view?.presentScene(scene, transition:reveal) ])) UITextField 保持可见。替换场景不会改变 UITextField 所在的视图? 知道了:stepTextField.removeFromSuperview() 必须从视图中手动删除文本字段。 太棒了@Dinean,这也是我要学习的新东西!谢谢。如果答案对您有帮助,您介意点赞吗?以上是关于UITextField 在 SKScene 上不可见的主要内容,如果未能解决你的问题,请参考以下文章