У меня недавно возникла эта проблема.
Я обошел ее, наблюдая за исчезновением клавиатуры в контроллере, который управляет UIPopoverController:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(presentSearchPopover) name:UIKeyboardDidHideNotification object:nil];
И затем в -presentSearchPopover
представьте UIPopoverController снова (это довольно плавный переход):
- (void)presentSearchPopover
{
self.searchPopoverController.popoverContentSize = CGSizeMake(width, height);
[self.searchPopoverController presentPopoverFromRect:someRect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
}
Не забудьте удалить наблюдателя в -dealloc
или аналогичном:
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardDidHideNotification object:nil];
[super dealloc];
}