LoginSignup
5
5

More than 5 years have passed since last update.

キーボードのタッチが後ろに伝搬してしまうバグ対応

Last updated at Posted at 2015-04-24

Issue

iOSには
1. iOSにてキーボードウィンドウを出す
2. ホームボタンなどでアプリをバックグラウンドにする
3. アプリをフォアグラウンドにもどす
と、すると、キーボードの変換などをタッチした時に後ろのビューにタッチが伝搬してしまうというバグがあります。

Action

アプリがフォアグラウンドになるタイミングでUITextEffectsWindowのプロパティをごにょごにょすると後ろのviewのHitTestが発火しなくなります。

- (void)applicationWillEnterForeground:(UIApplication*)application
{
  NSArray* windows = [[UIApplication sharedApplication] windows];
  if ([windows count] > 1)
  {
    for (UIWindow* w in windows) {
      if(!w.opaque && [[NSString stringWithFormat:@"%@", [w class]] isEqualToString:@"UITextEffectsWindow"])
      {
        BOOL hidden = w.hidden;
        // 1度HiddenをYESにする
        w.hidden = YES;
        w.hidden = hidden;
        break;
      }
    }
  }
}

※UITextEffectsWindowはプライベートAPIなのでクラス名でフィルタしてUIWindowオブジェクトとして処理しています。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5