dismissModalViewController: проблема с анимированной клавиатурой - PullRequest
0 голосов
/ 01 июня 2011
  • Создание проекта iPhone на основе представления с использованием Xcode (я использую xcode 4, но, полагаю, xcode 3 будет вести себя так же)
  • имеет следующий код в applicationDidFinishLaunchingMethod:

    -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
      // Override point for customization after application launch.
    
      self.window.rootViewController = self.viewController;
      [self.window makeKeyAndVisible];
    
      self.viewController.view.backgroundColor = [UIColor redColor];
      UIViewController *modalVc = [UIViewController new];
      modalVc.view.backgroundColor = [UIColor greenColor];
    
    [self.viewController presentModalViewController:modalVc animated:NO];
    
      UITextField *tf = [[UITextField alloc] initWithFrame:CGRectMake(0, 20, 150, 30)];
      tf.borderStyle = UITextBorderStyleRoundedRect;
      [self.window addSubview:tf];
      [tf becomeFirstResponder];
    
      [self.viewController performSelector:@selector(dismissModalViewControllerAnimated:) withObject:NO afterDelay:3];
    
      return YES;
    }
    
  • при запуске приложения вы заметите, что в момент закрытия modalViewController клавиатура исчезает, оставляя текстовое поле сфокусированным (курсор все еще мигает)

  • на самом деле мой проект использует другое окно для иерархии представления текстового поля, но похоже, что это происходит даже в том же окне. Я также попытался поместить текстовое поле в представление, принадлежащее контроллеру представления, и добавил это представление в окно с теми же результатами.

  • Apple принимает этот метод ([UIWindow addSubView:]) для добавления представления контроллера представления на экран, поэтому для меня это выглядит как ошибка

Вопросы:

  1. Это ошибка? я должен сообщить об этом в Apple?
  2. Есть ли обходной путь, чтобы он больше не сбрасывал клавиатуру?
...