title: Keydown not called for objects inside an SKScene
body: <p>I was working on a little game when I ran into a problem. I made a little test project in order to isolate the problem.</p>
  <p>I have the following class:</p>
  <pre><code>class Sprite: SKSpriteNode {
  
      override var acceptsFirstResponder: Bool { get { return true } }
  
      init() {
          super.init(texture: nil, color: .blue, size: CGSize(width: 200, height: 100))
          isUserInteractionEnabled = true
      
      }
  
      override func keyDown(with event: NSEvent) {
      
          position.x += 100
      
          print(&quot;keydown&quot;)
      
      }
  
      required init?(coder aDecoder: NSCoder) {
          fatalError(&quot;init(coder:) has not been implemented&quot;)
      }
  
  }
  </code></pre>
  <p>I create an instance of this class in the following scene:</p>
  <pre><code>class GameScene: SKScene {
  
      override var acceptsFirstResponder: Bool { get { return true } }
  
      let x = Sprite()
  
      override func didMove(to view: SKView) {
      
          anchorPoint = CGPoint(x: 0.5, y: 0.5)
      
          isUserInteractionEnabled = true
      
          addChild(x)
      
      }
  
      override func keyDown(with event: NSEvent) {
      
          x.position.y += 50
      
      }
  
  }
  </code></pre>
  <p>As you can see, I have a <code>keyDown</code> method in both classes. The one in <code>GameScene</code> gets called as I can clearly see the sprite (<code>x</code>) move upwards. The <code>keyDown</code> method in my <code>Sprite</code> class however, never gets called. I have searched the web and the only answer I've really found is that <code>acceptsFirstResponder</code> must be overridden and return <code>true</code>, but this doesn't help in my case. Any suggestions?</p>