嗨,我一直在关注一些教程,但这些教程适用于swift 1.2 我在Xcode 7.2上认为它的速度很快2.1 他使用带有spriteKit的UITextfield 但是这一行会导致错误 我用Google搜索但无法找到任何帮助 所以认为这是帮助欢呼的地方
self.view!.addSubview(TextInput!)
整个代码是
导入SpriteKit
class GameScene: SKScene { var TextInput:UITextField? override func didMoveToView(view: SKView) { let myLabel = SKLabelNode(fontNamed:"Chalkduster") myLabel.text = "" myLabel.fontSize = 15 myLabel.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame)) self.addChild(myLabel) TextInput?.frame = CGRect(x: 200, y: 300, width: 100, height: 40) self.view!.addSubview(TextInput!) TextInput?.backgroundColor = UIColor.whiteColor() } override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { /* Called when a touch begins */ for touch in touches { let location = touch.locationInNode(self) } } override func update(currentTime: CFTimeInterval) { /* Called before each frame is rendered */ } }
答案 0 :(得分:0)
您似乎无法在任何地方初始化您的UITextField。 在设置TextInput的框架之前,尝试将此行添加到didMoveToView:
self.TextInput = UITextField()
需要注意的是,Swift中的变量名称应该用camel case(thisIsCamelCase)编写,因此将变量重命名为 textInput 可能更好。我现在无法在Apple文档中找到这个,但是这个约定在Apple的所有示例代码中使用,并且由其他各种来源说明,例如
https://github.com/raywenderlich/swift-style-guide
http://andybargh.com/variables-and-constants-in-swift/#Rules_for_Naming_Variables