Iphone UITableView中包含多个UIPickerViews的多个UIText字段

Iphone UITableView中包含多个UIPickerViews的多个UIText字段,iphone,xcode,Iphone,Xcode,我有一个分组样式的UITableView,其中的HeaderView是从另一个.xib加载的 HeaderView中有4个UITextFields: 其中2个字段应显示键盘并允许用户输入 其中2个字段应显示UIPickerView,并使用所选内容更新UITextField 主表视图(包含节和行)也填充有UITextFields 第一节(indexpath.section=0)中的UITextField显示UIPickerView 其余部分/行中的所有其他UITextField应显示键盘

我有一个分组样式的UITableView,其中的HeaderView是从另一个.xib加载的

HeaderView中有4个UITextFields:

  • 其中2个字段应显示键盘并允许用户输入
  • 其中2个字段应显示UIPickerView,并使用所选内容更新UITextField
主表视图(包含节和行)也填充有UITextFields

  • 第一节(indexpath.section=0)中的UITextField显示UIPickerView
  • 其余部分/行中的所有其他UITextField应显示键盘
我可以使键盘正确显示,并在触摸所有可显示键盘的UITextFields的“完成”按钮时关闭

我可以让UIPickerView正确显示并关闭(使用自定义保存/取消按钮)

我的问题是当混合这两种

当我执行以下操作时,会产生混合效果:

步骤1:触摸第一个UITEXT字段,开始使用键盘输入数据。 步骤2:在UITextField中输入一些数据。 步骤3:触摸显示UIPickerView而非键盘的UITextField

结果是键盘和我的自定义UIPickerView同时显示,而键盘实际显示在我的UIPicker顶部


关于如何防止这种情况发生的任何建议?

需要显示一些代码,但很可能在调用UIPickerView之前,您没有调用[myTextField resignFirstResponder]。您需要为您的textField退出键盘。从你没有这样做的事实来看,我猜你也没有辞职。所以你必须让他们两人都辞职,否则他们将继续留在屏幕上

退出文本字段。

  • 实施
    UITextFieldDelegate
  • 实施

    - (BOOL) textFieldShouldReturn:(UITextField *)textField
    {
    [textField resignFirstResponder];
    
    return 1;
    }
    
  • 辞职pickerview:

    将选择器视图实现为您的属性,并在选择器视图的自定义完成按钮的
    textfielddidediting
    iAction
    中实现
    [self.yourpickerview resignFirstResponder]