日々精進

新しく学んだことを書き留めていきます

ポップオーバーが消えたらキーボードを引っ込める方法

AppStoreの検索窓のように、テキストボックスにフォーカスが当たったらキーボードとポップオーバーを表示させて、
テキストボックス・ポップオーバー・キーボード以外の部分をタップしたらポップオーバーを消す方法。
・ViewControllerに以下のアクションを追加してテキストボックスにフォーカスが当たったらポップオーバーを出す

- (IBAction)textFieldEditingDidBegin:(UITextField *)sender {
    [self.popoverController presentPopoverFromRect:self.textField.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
}

・ポップオーバーを表示するViewControllerにUIPopoverControllerDelegateを設定。
・以下のメソッドを追加

- (void) popoverControllerDidDismissPopover:(UIPopoverController *) popoverController {
    [self.textField resignFirstResponder];
}

参考:http://stackoverflow.com/questions/6212988/uipopovercontroller-dismiss-on-tap-off-how-do-i-detect-this-event