打开/隐藏键盘时,Popover会反复复制

时间:2012-10-20 13:23:26

标签: ios uitextfield uipopovercontroller uikeyboard

情况:

我有一个带有UITextfield的UIViewcontroller(editViewController)。 editViewController是我的popover contentViewController。弹出窗口显示以下代码:

 CGSize size;
 size.width = 620;
 size.height = 500;
 self.myPopover = [[UIPopoverController alloc]     
                      initWithContentViewController:self.editViewController];

 self.editPopover.popoverContentSize = size;

 [self.editPopover presentPopoverFromRect:self.view.frame 
                                        inView:self.view
                      permittedArrowDirections:0 // or any other direction
                                      animated:YES];
  • Xcode版本4.3.2
  • 部署目标iOS 5.0

当用户点击UITextField时,键盘会弹出它应该的样子。但是,当我使用键盘隐藏按钮隐藏/显示键盘并再次点击文本字段时,弹出视图会不断重复。看看popover阴影,看看实际存在的问题。

http://www.tectoys.nl/popover_duplicating.jpg

  1. 首次弹出
  2. 大约10x后隐藏并显示键盘。由于重复,阴影变暗。
  3. 有人知道导致这个问题的原因还是可以给我一个解决方法?

1 个答案:

答案 0 :(得分:0)

如果每次显示弹出窗口时都会执行您提供的代码示例,那么这是因为您每次都在创建一个新的UIPopoverController,而您创建的旧UIPopoverController不会被解除。尝试在创建新弹出窗口之前解除弹出窗口:

[self dismissFormPopoverAnimated:NO];
self.myPopover = [[UIPopoverController alloc]     
                  initWithContentViewController:self.editViewController];