     
 }
 
-extension NSObject {
+extension UIResponder {
     
     func printNextResponder(nextResponder: UIResponder?) {
         guard let responder = nextResponder else {
             return
         }
         
-        print("-> \(self.dynamicType): Hey \(responder.dynamicType), something coming your way!")
+        if (touchReceived) {
+            print("-> \(self.dynamicType): Hey \(responder.dynamicType), something coming your way!")
+        }
     }
 
 }

    }
    
    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        printEvent(event)
        
        super.touchesBegan(touches, withEvent: event)

//

import UIKit

// Gross global variable to suppress print output until touch event received. There is almost certainly a better way. Maybe 100 better ways.
var touchReceived = false

class ViewController: UIViewController {
    
