UITableView中具有多个UIPickerView的多个UIText字段

时间:2011-07-22 19:31:56

标签: iphone xcode

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

HeaderView中有4个UITextField:

  • 其中2个字段应显示键盘并允许用户输入。
  • 其中2个字段应显示UIPickerView并使用选择更新UITextField。

Main TableView(带有节和行)也用UITextFields填充。

  • 第一部分中的UITextField(indexpath.section = 0)显示UIPickerView
  • 其余部分/行中的所有其他UITextField应显示键盘

我可以正确显示键盘,并在触摸可显示键盘的所有UITextField的完成按钮时解除。

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

我遇到的问题是混合两者......

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

步骤1:触摸第一个UITextField以开始使用Keybard输入数据。 第2步:在UITextField中输入一些数据。 第3步:触摸显示UIPickerView而不是键盘的UITextField。

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

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

2 个答案:

答案 0 :(得分:0)

需要显示一些代码,但很可能你在调用UIPickerView之前没有调用[myTextField resignFirstResponder]。

答案 1 :(得分:0)

您需要为textField重新签名键盘。从你没有这样做的事实来看,我猜你也没有退出pickerView。因此,您需要重新签名,否则他们将继续留在屏幕上

重新启动textField。

  1. 实施UITextFieldDelegate
  2. 实施

    - (BOOL) textFieldShouldReturn:(UITextField *)textField
    {
    [textField resignFirstResponder];
    
    return 1;
    }
    
  3. 退出挑选者视图:

    将选择器视图作为您的媒体资源实施,并在[self.yourpickerview resignFirstResponder]和您的自定义完成按钮的textFieldDidEndEditing中为您的选择器视图实施IBAction