しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

【iOS】ユーザーがスクリーンショットを撮ったタイミングを検知する

スクリーンショットを撮ったタイミングを検知するには.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)
    }
}

スクリーンショットを撮ったら登録したメソッドが呼ばれました。

f:id:llcc:20171016140412p:plain

アプリがバックグラウンドにある時も試したのですが、バックグラウンド時は登録したメソッドは呼ばれないようでした。