2

アプリケーションがアクティブになったときに、どのビューが現在ファーストレスポンダーであるかをどのように見つけますか。アプリケーションデリゲートapplicationWillEnterForegroundとapplicationDidBecomeActiveが場合によっては呼び出されることを知っています。これを使用して、ファーストレスポンダである親密なビューを表示するにはどうすればよいですか。

私はグーグルで調べましたが、スタックオーバーフローで正確な答えが見つかりませんでした。任意のアイデアの友人..

4

1 に答える 1

4

iOS アプリケーションの最上位ビュー/ウィンドウへの参照を取得する

topMostView = [[[[UIApplication sharedApplication] keyWindow] subviews] lastObject];

gets -reference-to-the-top-most-view-window-in-ios-applicationリンクを参照してください。

アプリケーションがバックグラウンドから戻るときに実行するアクションを現在のビューに編集します

Add BOOL applicationFromBackground; make its property in appDelegate.

Intially it will be applicationFromBackground = FALSE; in application didFinishLaunchingWithOptions method;

アプリケーションがフォアグラウンドに入ります:

- (void)applicationDidEnterBackground:(UIApplication *)application
{
   applicationFromBackground = TRUE;
}

これで、すべてのビュー コントローラーのビューに、最上位のビュー コントローラーに対して呼び出されるメソッドが表示されるので、次のようにします。

- (void)viewWillAppear:(BOOL)animated
{
  [super viewWillAppear:animated];
  // Create AppDelegate instance
  AppDelegate *objAppDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
  if(objAppDelegate.applicationFromBackground)
  {
     applicationFromBackground = FALSE;
     //do what u want.
  }

}
于 2012-09-05T05:02:16.170 に答える