这可能听起来像一个新手问题,但我是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没有被选中,但辞职发生了,对吗?但键盘没有隐藏......为什么会这样?
答案 0 :(得分:1)
问题出在textFieldShouldReturn上。如果您希望它完成操作,请在辞职第一响应者时允许它返回。
[textField resignFirstResponder];
return YES;
答案 1 :(得分:1)
在inputView
上设置UITextField
属性以显示键盘以外的视图以接收输入。在这种情况下,您可以将文本字段的inputView
设置为UIDatePicker
的实例。选择器将自动显示相同的键盘动画,您可以删除一堆代码。赢/赢。