UIPopoverController's view controller gets resized after keyboard disappears

点点圈 提交于 2019-11-30 07:02:30

问题


I have a view controller inside a UIPopoverController. When I open a keyboard for a text field that belongs to the view in the popover, the view resizes to accommodate the keyboard. However, the view doesn't go back to the original size when the keyboard is dismissed.

Any ideas how to get it to resize back to what it was?


回答1:


Had this problem myself recently.

The way I got around it was to observe the keyboard disappearing in the controller which controls the UIPopoverController:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(presentSearchPopover) name:UIKeyboardDidHideNotification object:nil];

And then in -presentSearchPopover, present the UIPopoverController again (it's quite a seamless transition):

- (void)presentSearchPopover
{
    self.searchPopoverController.popoverContentSize = CGSizeMake(width, height);

    [self.searchPopoverController presentPopoverFromRect:someRect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
}

Don't forget to remove the observer in -dealloc or similar too:

- (void)dealloc
{
    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardDidHideNotification object:nil];

    [super dealloc];
}


来源:https://stackoverflow.com/questions/5428425/uipopovercontrollers-view-controller-gets-resized-after-keyboard-disappears

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!