スクリーンショットを撮ったタイミングを検知するには.UIApplicationUserDidTakeScreenshotを使います。
class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() NotificationCenter.default.addObserver(self, selector: #selector(self.userDidTakeScreenshot), name: .UIApplicationUserDidTakeScreenshot, object: nil) } @objc func userDidTakeScreenshot() { print(#function) } }
スクリーンショットを撮ったら登録したメソッドが呼ばれました。
アプリがバックグラウンドにある時も試したのですが、バックグラウンド時は登録したメソッドは呼ばれないようでした。