2017-07-25 25 views
0

UITextFieldSKSceneに追加しようとしています。 Swift 3とXcode 8で作業しています。次のように試しました。SKSceneでUITextFieldが表示されない

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

} 

しかし、私はすべて黒い画面が表示されます。私は何を取りこぼしたか?

ありがとうございました!

答えて

0

は、あなたが(ビューへ:SKView)didMoveにそれを追加する必要があり、次の関数にコードを追加することで

、あなたのテキストフィールドを見ることができます。

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) 
} 
+0

こんにちは、ありがとうございます。しかし、UITextFieldはSKSceneに属していないようです。 SKAction.wait(forDuration:5.0)、 SKAction.run(){ let reveal = SKTransition.flipHorizo​​ntal(withDuration:0.5) let scene = OtherScene(size:self.view?.presentScene(scene、transition:reveal) } ])) UITextFieldは引き続き表示されます。シーンを置き換えても、UITextFieldが表示されているビューは変更されません。 – Dinean

+0

入手した:stepsTextField.removeFromSuperview()テキストフィールドは、Viewから手動で削除する必要があります。 – Dinean

+0

それは素晴らしい@Dineanだ、それはまた私が学ぶための新しいことだ!それについて感謝します。答えがあなたを助けたら、それを上書きしてもよろしいですか? –

関連する問題