Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Miraaj

macrumors newbie
Original poster
Oct 2, 2014
3
0
I am trying to learn SpriteKit and play with some simple sample apps.

Currently I am trying to achieve below things:

1. Show keyboard over SKScene
2. If user taps 'A', perform some action on a sprite node, if user taps 'B' perform some other action on other sprite nodes

To achieve 1st requirement I tried below steps:

Step 1: In GameViewController.swift, added a reference to the view.

Code:
 var keyView: KeyboardDummyView?

Step 2: In viewDidLoad(), created the view, assigned it to the ivar, and added it to the controller's view. Also assigned "self" to a backreference ivar in GameScene.

Code:
    override func viewDidLoad() {
        super.viewDidLoad()
    
        if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {
            // So scene can forward touch event back here.
            scene.gvc = self
            
            // Other config
            
            keyView = KeyboardDummyView(frame: self.view.frame)
             self.view.addSubview(keyView!)
        }
    }

Step 3: Added a function to handle a tap/touch.

Code:
    func handleTap() {
        // Show the keyboard
        keyView!.becomeFirstResponder()
    }

Step 4: In GameScene.swift added the reference to the controller.

Code:
    var gvc: GameViewController?

Step 5: In touchesBegan handled tap.

Code:
    gvc!.handleTap()

But for some reasons it is not showing the keyboard when screen is tapped :(

Here is the code base: KeyboardOverSKScene

Please suggest if I am doing any thing wrong?

Note: I am trying this in Xcode 6.0.1
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.