скрыть клавиатуру, если всплывающее окно действий - PullRequest
0 голосов
/ 11 сентября 2011

У меня есть приложение, в котором у меня есть 2 текстовых поля.Теперь моя проблема, скажем, первый пользователь нажимает на обычное текстовое поле.Который будет выскакивать клавиатура.Затем, не нажимая кнопку «Готово», он нажимает на поле даты.Который будет всплывающим листом действий (без увольнения клавиатуры).После сокрытия листа действий пользователь должен нажать на другой текстовый файл и нажать клавишу возврата на клавиатуре.

Я хочу скрыть клавиатуру, если лист действий будет всплывать?

мой код ниже

- (void)textFieldDidBeginEditing:(UITextField *)textField
{


    if([textField isEqual:txtdob])
    {

        [textField resignFirstResponder];


        actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:nil cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];
        [actionSheet setActionSheetStyle:UIActionSheetStyleBlackTranslucent];
       // txtdob.inputView=actionSheet;
        CGRect pickerFrame = CGRectMake(0, 40, 0, 0);

        datepicker=[[UIDatePicker alloc] initWithFrame:pickerFrame];
        datepicker.datePickerMode = UIDatePickerModeDate;
        //[datepicker setMinimumDate:minDate];
        [datepicker addTarget:self action:@selector(changeDateInLabel:) forControlEvents:UIControlEventValueChanged];

        [actionSheet addSubview:datepicker];
        [datepicker release];

        UISegmentedControl *closeButton = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObject:@"Done"]];
        closeButton.momentary = YES; 
        closeButton.frame = CGRectMake(260, 7.0f, 50.0f, 30.0f);
        closeButton.segmentedControlStyle = UISegmentedControlStyleBar;
        closeButton.tintColor = [UIColor blueColor];
        [closeButton addTarget:self action:@selector(dismissActionSheet) forControlEvents:UIControlEventValueChanged];
        [actionSheet addSubview:closeButton];
        [closeButton release];

        [actionSheet showInView:self.view];

        [actionSheet setBounds:CGRectMake(0, 0, 320, 485)];

    }
}

Ответы [ 2 ]

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

Вызовите это в вашем ViewController

[self.view endEditing:NO];
0 голосов
/ 11 сентября 2011

Вы пытались реализовать метод протокола UITextFieldDelegate - (void)textFieldDidEndEditing:(UITextField *)textField?Метод вызывается всякий раз, когда UITextField выходит из фокуса, например, когда, например, пользователь касается другого элемента в представлении.

Попробуйте добавить это в свой класс делегата:

- (void)textFieldDidEndEditing:(UITextField *)textField {
    [textField resignFirstResponder];
}

Также убедитесь, что делегат textfields установлен в класс, который реализует этот метод выше.Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...