键盘在UITextField上没有被解雇

时间:2011-12-05 13:49:49

标签: iphone ios ipad uitextfield

这可能听起来像一个新手问题,但我是iOS开发新手。

平台:iPad

我有一个带UITextField的UITableView,假设它们是两个。 按下第一个虚拟键盘应该出现,但是当用户在第二个UITextField上进行tapp时,应该隐藏虚拟键盘并显示数据选择器视图。

所以就是这样,我是怎么做到的。

-(void) textFieldDidBeginEditing:(UITextField *)textField {
    if (textField.tag == PICKER_VIEW_TAG) {
        [textField resignFirstResponder];
    } else {
        ...
    }
}

-(void) textFieldDidEndEditing:(UITextField *)textField
{
    if (textField.tag != PICKER_VIEW_TAG) {
        ...
    }
}

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
    if (textField.tag == PICKER_VIEW_TAG) {
        [self countriesPickerView];
    }
    return YES;
}

-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
    if (textField.tag == PICKER_VIEW_TAG) {
        [textField resignFirstResponder];
    } else {
        ... 
    }
    return YES;
}

所以现在的问题是,当我第一次在第一个UITextField上单击它时会显示键盘,但当我切换到第二个时它不会隐藏它。为什么?以及如何解决这个问题?

更新:相应的textField没有被选中,但辞职发生了,对吗?但键盘没有隐藏......为什么会这样?

2 个答案:

答案 0 :(得分:1)

问题出在textFieldShouldReturn上。如果您希望它完成操作,请在辞职第一响应者时允许它返回。

[textField resignFirstResponder];
return YES;

答案 1 :(得分:1)

inputView上设置UITextField属性以显示键盘以外的视图以接收输入。在这种情况下,您可以将文本字段的inputView设置为UIDatePicker的实例。选择器将自动显示相同的键盘动画,您可以删除一堆代码。赢/赢。