скрыть клавиатуру в текстовом поле - PullRequest
2 голосов
/ 12 декабря 2011

Я реализовал вид, в котором есть два текстовых поля. В первом текстовом поле, когда пользователь нажимает на него, отображается окно выбора. Когда пользователь нажимает на другое текстовое поле, отображается клавиатура. Но когда пользователь переходит от второго текстового поля к первому текстовому полю, он по-прежнему показывает клавиатуру, и на задней части этой клавиатуры есть окно выбора. Я не могу отменить эту клавиатуру, когда пользователь переходит со второго на первое текстовое поле без нажатия кнопки «Готово».

 -(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;
     }

enter image description here

если у кого-то есть идея отклонить клавиатуру. Пожалуйста, предоставьте решение.

Большое спасибо.

Ответы [ 3 ]

3 голосов
/ 12 декабря 2011

Похоже, что правильное решение вашей проблемы - установить свойство inputView первого текстового поля для представления средства выбора.

Попросите контроллер представления создать и настроить сборщик при отображении экрана «Сведения о лекарстве» и назначить этот сборщик для первого текстового поля inputView.Затем, когда пользователь перемещается из одного поля в другое, клавиатура или сборщик будут автоматически отображаться без необходимости дурачиться с отставкой первого респондента и т. Д.

1 голос
/ 12 декабря 2011

Попробуйте указать secondTextField также resignFirstResponder после того, как определите, что firstTextField активен:

 -(void)textFieldDidBeginEditing:(UITextField *)myTextField
  {  
     if(myTextField == firsttextfield)
     {
        [firsttextfield resignFirstResponder];
        [secondtextfield resignFirstResponder];
        medicationtypepicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0,190,320,215)];
        ....
      }
   }  
0 голосов
/ 12 декабря 2011

проверьте, что свойство вашего текстового поля «Закончилось ли при выходе» связано с «Владельцем файлов».Тогда используйте;- (void) textFieldDidBeginEditing: (UITextField *) myTextField
{if (myTextField == firsttextfield)
{
...
[secondtextfield resignFirstResponder];.....}}

...