在iPhone OS 3.2中,如果文本字段在popover中,我如何消除键盘?

在iPhone OS 3.2中,如果文本字段在popover中,我如何消除键盘?,iphone,cocoa-touch,keyboard,uitextfield,Iphone,Cocoa Touch,Keyboard,Uitextfield,编辑:好吧,这很奇怪。。。在做了大量的调试之后,我发现当文本字段改变第一响应者的状态时(我可以看到,在任何情况下都不再有闪烁条),键盘不会关闭!也许这值得一个不同的问题 我在自定义uiviewcontroller子类中有几个文本字段,它显示在popover中。弹出框以条形按钮的形式显示。我希望在弹出框被关闭时,键盘会下降(用户再次点击工具栏按钮,或在弹出框外点击)。在弹出框被关闭时,从显示弹出框的视图控制器中,我会以两种方式中的任何一种方式调用 [optionsController dismis

编辑:好吧,这很奇怪。。。在做了大量的调试之后,我发现当文本字段改变第一响应者的状态时(我可以看到,在任何情况下都不再有闪烁条),键盘不会关闭!也许这值得一个不同的问题

我在自定义uiviewcontroller子类中有几个文本字段,它显示在popover中。弹出框以条形按钮的形式显示。我希望在弹出框被关闭时,键盘会下降(用户再次点击工具栏按钮,或在弹出框外点击)。在弹出框被关闭时,从显示弹出框的视图控制器中,我会以两种方式中的任何一种方式调用

[optionsController dismissFirstResponder];
Optionscontroller是popover中的uiviewcontroller子类。Dismissfirstresponder是我定义的方法:

-(void)dsimissFirstResponder {
[nameField resignFirstResponder];
[descriptionField resignFirstResponder];
[helpField resignFirstResponder];

}
这是我在xib中连接到文本字段的三个IBOutlet

这不管用。如果有任何帮助,我们将不胜感激

该代码被称为: [选项控制器解除第一响应者]; [poppoverController解除PoppOveranimated]


我在dismissFirstResponder中设置了一个断点,并在我预期的时间调用它。我还检查了,并且在该函数调用期间,所有三个IBoutlet都是非零的。这些是整个应用程序中唯一的文本字段,所以我不确定如何放下键盘。

您需要的是接收popover.H的委托方法回调您是否查看了文档中的?定义了以下方法:

  • -PopOver控制器应为PopOver:
  • -PopOvercontrollerdDismissPopOver:
如果您已经为您的popover设置了一个委托,并且您已经在该委托中实现了这个正式协议,那么当您的用户做任何动作来解除popover(点击外部等)时,应该会调用这些。当–PopOvercontrollerdDismissPopover:被调用时,您可以在此时调用控件上的-resignFirstResponder

// In your popover delegate
- (void)popoverControllerDidDismissPopover:
                     (UIPopoverController *)popoverController
{
  [nameField resignFirstResponder];
  [descriptionField resignFirstResponder];
  [helpField resignFirstResponder];
}

你的代码被调用了吗?在“dsimissFirstResponder”中有一个类型。你在popover实际关闭之前调用它吗?我只是在[命名点…它实际上在应该的时候被调用。问题编辑。啊…我忘了你可以将委托指定为任何对象…我将指定显示在popover中的view controller子类作为popover的委托,并在我返回项目时按你说的做,看看它是否有效。那么你找到答案了吗?我我也有同样的问题:/