I believe your problem was setting self.view?.paused = true , as @Steve pointed out in the comment and @Linus G. in his answer. Therefore, when you tried to display the shortcut, nothing happened because the view was paused.
I tried using self.paused to pause SKScene . This solved the problem with the demonstration of the label, but in reality it did not stop the scene. This may be due to: since iOS8, SpriteKit automatically pauses your game when it enters the background, and disconnects the game when it comes to the fore. Therefore, the attempt to set self.paused = true using applicationWillResignActive had no effect, because when it entered the foreground, it was not suspended.
To solve this problem, you can observe UIApplicationWillResignActiveNotification . Then, when the application resigns, it will be set to self.speed = 0 , which has the same effect as pausing SKScene . This displays the cue and pauses the scene as needed.
For instance:
class GameScene: SKScene { let tapToResume = SKLabelNode(fontNamed: "Noteworthy") override func didMoveToView(view: SKView) { NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("pauseScene"), name: UIApplicationWillResignActiveNotification, object: nil) tapToResume.text = "tap to resume" tapToResume.position = CGPoint(x: frame.midX, y: frame.midY) tapToResume.fontSize = 55 tapToResume.hidden = true self.addChild(tapToResume) } func pauseScene() { self.speed = 0.0 tapToResume.hidden = false } override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
source share