- 2010年12月16日 16:27
- iPad
iPadのMordalViewを表示中に、[UITextField resignFirstResponder]でキーボードが隠れなくなる話。
どうも、modalPresentationStyleをUIModalPresentationFormSheetに設定した場合、キーボードを表示すると、起こるらしい。
UIViewController *b = [[UIViewController alloc] init];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:b];
navigationController.modalPresentationStyle = UIModalPresentationFormSheet;
navigationController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:navigationController animated:YES];
[navigationController release];
[b release];
この状態で、UITextFieldへbecomeFirstResponderしてキーボードを表示する。
キー入力終了後に[UITextField resignFirstResponder]してもキーボードは隠れない。
MordalViewを閉じる時にはキーボードは一緒に隠れる。
これはバグではないらしい。
http://stackoverflow.com/questions/3372333/
で、下記を参考にしたら、対処できました。(でもリジェクト)
追記 2011.1.24 以下はPrivate APIなのでリジェクトになるようです。
スミマセン。。。コメントありがとうございました。
iOS4.3では
[UIViewController disablesAutomaticKeyboardDismissal]
というメソッドが追加されるようです。さて、それ以下のOSにはどう対処しようかしら?
[myTextField resignFirstResponder]; @try { Class UIKeyboardImpl = NSClassFromString(@"UIKeyboardImpl"); id activeInstance = [UIKeyboardImpl performSelector:@selector(activeInstance)]; [activeInstance performSelector:@selector(dismissKeyboard)]; } @catch (NSException *exception) { NSLog(@"%@", exception); }http://stackoverflow.com/questions/2762251/how-to-hide-the-ipad-keyboard-from-a-modal-view-controller
- Newer: iPhone/iPad @protocolで自前のDelegate
- Older: iPhone等で再生するm4vへのファイル変換
Comments:2
- sorapizza 2011年1月23日 15:53
この方法を使用して申請したところPrivateAPIを使用しているということでリジェクトされました。
参考までに。- 管理人 2011年1月23日 19:44
貴重なコメントありがとうございました。
自分は未だ申請前だったので助かりました!
Trackbacks:0
- TrackBack URL for this entry
- http://www.hirano-dept.com/mt/mt-tb.cgi/110
- Listed below are links to weblogs that reference
- iPad ModalView表示の時、キーボードが隠れない from 袖触れ合うも多少の縁