お使いのブラウザは、バージョンが古すぎます。

このサイトは、Internet Explore8・Internet Explore9には対応しておりません。
恐れ入りますが、お使いのブラウザをバージョンアップしていただきますよう宜しくお願いいたします。

【iOS】続・アプリがバックグラウンド・フォアグラウンド状態になった時の実行処理

前回からの続きです。アプリがバックグラウンド・フォアグラウンド状態になった時の実行処理の方法をAppDelegateからの通知を経て、NSNotificationCenterを生成してメソッドを実行という流れからUIApplicationのNotificationsのパラメータを使って実行処理を行います。
また、今回は実用例を交えながら進めていきたいと思います。

UIApplicationのNotificationsのパラメータ

アプリケーションがアクティブになった時に通知

UIApplicationDidBecomeActiveNotification

アプリケーションがバックグラウンドに入る時に通知

UIApplicationDidEnterBackgroundNotification

アプリケーションが起動した直後に通知

UIApplicationDidFinishLaunchingNotification

アプリケーションがアクティブになる直前に通知

UIApplicationWillEnterForegroundNotification

アプリケーションがアクティブで無くなる直前に通知

UIApplicationWillResignActiveNotification

アプリケーションが終了される直前に通知

UIApplicationWillTerminateNotification

ステータスバーのサイズ変更される直前に通知

UIApplicationWillChangeStatusBarOrientationNotification

デバイスの向きが変わった後に通知

UIApplicationDidChangeStatusBarOrientationNotification

NSNotificationCenterを生成

UIApplicationのNotificationsのパラメータ「UIApplicationDidEnterBackgroundNotification」を使います。

- (void)viewDidLoad
{
// name:UIApplicationDidEnterBackgroundNotification(アプリがバックグラウンドになる時)を指定
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sampleNotification) name:UIApplicationDidEnterBackgroundNotification object:nil];
}

メソッド実行

- (void) sampleNotification{
// バックグラウンド時になった時の実行処理
}

実用例

今回は実用例として、キーボードを表示中からバックグラウンド状態になった時にキーボードを閉じる処理を行いたいと思います。

通常、キーボード表示中にバックグラウンド状態後、フォアグラウンド状態になった画面にはキーボードが表示されたままです。
そこで、バックグラウンド状態後にキーボードを閉じる処理を実行させることで解決していきます。

NSNotificationCenterを生成

バックグラウンド状態に入る時に通知される「UIApplicationDidEnterBackgroundNotification」を使います。
メソッド名は「keyboardHidden」とします。

- (void)viewDidLoad
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardHidden) name:UIApplicationDidEnterBackgroundNotification object:nil];
}

メソッド実行処理

メソッド内にキーボードを閉じる処理を追加します。

- (void) keyboardHidden{
        // resignFirstResponderにてテキストビューで表示されたキーボードを閉じる
        [self.textView resignFirstResponder];
}

これでキーボード表示中にバックグラウンド状態後にキーボードが閉じ、フォアグラウンド状態になった時はキーボードが消えている状態になります。

コメントをどうぞ

メールアドレスは公開されません。* が付いている欄は必須項目です。


お気軽にお問い合わせください。

日本VTR実験室では、お仕事のご依頼、ブログ・コラムのご感想などを受け付けております。
アプリ開発・コンテンツ制作でお困りでしたら、お気軽にご相談ください。
ご連絡お待ちしております。

お問い合わせはこちらから

03-3541-1230

info@nvtrlab.jp

電話受付対応時間:平日AM9:30〜PM6:00