2

我已经实现了一个视图,其中有两个文本字段。在第一个文本字段中,当用户单击它时,会显示选择器视图。当用户单击其他文本字段时,将显示键盘。但是当用户从第二个文本字段转到第一个文本字段时,它仍然显示键盘,并且该键盘背面有一个选择器视图。当用户在不按键盘完成按钮的情况下从第二个文本字段移动到第一个文本字段时,我无法退出此键盘。

 -(void)textFieldDidBeginEditing:(UITextField *)myTextField
  {  
  if(myTextField == firsttextfield)
  {
    [firsttextfield resignFirstResponder];
    medicationtypepicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0,190,320,215)];
    medicinetypearray = [[NSMutableArray alloc]initWithObjects:@"Capsules",@"Eyedrops", 
    @"Eardrops",@"Nosedrops",@"Inhaler",@"Syrup",@"Injections",@"Oils",@"Ointment", nil];
    medicationtypepicker.delegate = self;
    medicationtypepicker.showsSelectionIndicator = YES;
    medicationtypepicker.autoresizingMask = UIViewAutoresizingFlexibleWidth;
    [self.view addSubview:medicationtypepicker];
   }

}

   -(BOOL)textFieldShouldReturn:(UITextField *)textField
    {
     [secondtextfield resignFirstResponder];
     return YES;
     }

在此处输入图像描述

如果有人想关闭键盘。请提供解决方案。

非常感谢你。

4

3 回答 3

3

听起来您的问题的正确解决方案是将第一个文本字段的inputView属性设置为选择器视图。

让您的视图控制器在出现药物详细信息屏幕时创建和配置选择器,并将该选择器分配给第一个文本字段的inputView. 然后,当用户从一个字段移动到另一个字段时,键盘或选择器将自动显示,而无需您与辞职的第一响应者等闲逛。

于 2011-12-12T11:22:10.270 回答
1

在确定它是活动secondTextField的之后,尝试告诉它:resignFirstResponderfirstTextField

 -(void)textFieldDidBeginEditing:(UITextField *)myTextField
  {  
     if(myTextField == firsttextfield)
     {
        [firsttextfield resignFirstResponder];
        [secondtextfield resignFirstResponder];
        medicationtypepicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0,190,320,215)];
        ....
      }
   }  
于 2011-12-12T11:17:38.307 回答
0

检查您的文本字段的属性“退出时结束”是否与“文件所有者”正确连接。然后使用;-(void)textFieldDidBeginEditing:(UITextField *)myTextField
{ if(myTextField == firsttextfield)
{
...
[secondtextfield resignFirstResponder]; ..... } }

于 2011-12-12T12:09:38.520 回答