这个很难解释,所以提出你需要的任何问题来澄清这个问题。我有一个iPad应用程序(XCode 4.2,iOS 6,ARC和Storyboards)。
在此应用中,我的UIPopover
包含UIView
,其中包含两个(2)UITextFields
和UIDatePicker
。 (见图)。当我去那个场景时,我在两个textFields上取消选中userInteractionEnabled
以防止键盘响应,这有效,但不允许在第一个之后访问其他UITextField
。我尝试了[oFinishTime setInputView:oTimePicker];
,但需要时间戳并将其移到弹出框之外,这是不可接受的。
我为每个textField都有touchUpInside
个事件“有线”,但由于未选中UserInteractionEnabled,因此在点击时都不会调用它们。如果我可以启用它并在动作事件中设置一个标志,我可以补救这一切。
如何启用UITextFields
同时阻止键盘显示?我很乐意发布您需要查看的任何相关代码。
答案 0 :(得分:5)
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField; // return NO to disallow editing.
为每个文本字段分配委托,并在委托方法中验证是否应该打开选择器而不是键盘。 如果是那个则返回NO 否则是
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
if (textfield == startTimeTextField)
{
[self openPicker];
return NO;
}
return YES;
}
答案 1 :(得分:4)
可能是我没有正确理解你的问题,但似乎你所要做的就是点击打开一个选择器并显示UIPicker中设置的值。您实际上并未使用UItextField的任何功能。标签或按钮可能起到同样的作用,使您无需执行禁用键盘的额外工作。
在任何情况下,如果你想使用textfield并禁用键盘选择器作为输入视图出现并拥有自己的输入视图,你可以这样做
-(void)textFieldDidBeginEditing:(UITextField *)textField{
[textField resignFirstResponder];
}