Swift detect touch anywhere on the screen

前端 未结 2 933
抹茶落季
抹茶落季 2021-02-07 11:01

I know you can detect touches using touchesBegan, touchesEnded, etc. These all work. The only thing is that they only detect the touches on the view itself, not on anything on t

2条回答
  •  情歌与酒
    2021-02-07 11:55

    You can add this to your AppDelegate:

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
            let tapGesture = UITapGestureRecognizer(target: self, action: nil)
            tapGesture.delegate = self
            window?.addGestureRecognizer(tapGesture)
    
            return true
    }
    
    func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
            // User tapped on screen, do whatever you want to do here.
    
            return false
    }
    

    And also make your AppDelegate conform to UIGestureRecognizerDelegate protocol.

提交回复
热议问题