Размер контроллера вида UIPopoverController изменяется после исчезновения клавиатуры - PullRequest
3 голосов
/ 25 марта 2011

У меня есть контроллер вида внутри UIPopoverController. Когда я открываю клавиатуру для текстового поля, которое принадлежит представлению во всплывающем окне, представление изменяется в соответствии с клавиатурой. Однако при отклонении клавиатуры вид не возвращается к исходному размеру.

Любые идеи, как заставить его изменить размер обратно к тому, что было?

1 Ответ

7 голосов
/ 20 апреля 2011

У меня недавно возникла эта проблема.

Я обошел ее, наблюдая за исчезновением клавиатуры в контроллере, который управляет 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];
}
...