2

这个有点难以解释,所以问任何你需要澄清问题的问题。我有一个 iPad 应用程序(XCode 4.2、iOS 6、ARC 和 Storyboards)。

在这个应用程序中,我有一个UIPopover包含UIView两个 (2)UITextFields的 a 和一个UIDatePicker. (见图)。当我去那个场景时,我没有选中userInteractionEnabled两个 textFields 以防止键盘响应,这有效,但不允许UITextField在第一个之后访问另一个。我试过[oFinishTime setInputView:oTimePicker];了,但它需要时间选择器并将其移到弹出框之外,这是不可接受的。

显示 2 个 uiview 和一个日期选择器的图像

touchUpInside为每个文本字段“连接”了事件,但是由于未选中 UserInteractionEnabled,因此在点击时都没有调用任何事件。如果我可以启用它并在操作事件中设置一个标志,我可以解决整个问题。

如何启用两者UITextFields但防止键盘显示?我很乐意发布您需要查看的任何相关代码。

4

2 回答 2

5
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;        // return NO to disallow editing.

为每个文本字段分配委托,并在委托方法中验证它是否应该打开选择器而不是键盘。如果是那个则返回 NO 否则返回 YES

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
      if (textfield == startTimeTextField)
       { 
          [self openPicker];
          return NO;
        }
    return YES;
}
于 2013-05-18T23:39:14.650 回答
5

可能是我没有正确理解您的问题,但您似乎想要做的只是在点击时打开一个选择器并显示在 UIPicker 中设置的值。您并没有真正使用 UItextField 的任何功能。标签或按钮可能具有相同的目的,并且使您免于执行禁用键盘的额外工作。

在任何情况下,如果您想使用文本字段并禁用键盘选择器作为输入视图出现并拥有自己的输入视图,您可以这样做

-(void)textFieldDidBeginEditing:(UITextField *)textField{
    [textField resignFirstResponder];
}

你可以看看这个: Display datepicker on taping on textfield

于 2013-05-19T05:52:51.507 回答