Как сделать так, чтобы клавиатура исчезала после ввода текста? - PullRequest
1 голос
/ 21 апреля 2010

У меня есть два текстовых поля в моем представлении. Я сделал это с помощью IB. Мои проблемы

  1. После ввода текста в textField1 я ввожу текст в textField2. Когда я снова нажимаю textField1, предыдущий текст исчезает в textField1.

  2. После ввода текста в оба текстовых поля мне нужно, чтобы клавиатура исчезла. Но даже если я коснулся клавиши возврата в раскладке клавиатуры или коснулся экрана за пределами текстового поля, клавиатура не исчезает.

Как я могу это сделать. Спасибо.

- (void)viewDidLoad 
{
    self.title = @"Edit";
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Save" style:UIBarButtonItemStyleDone target:self action:@selector(save)];

    //[nameField becomeFirstResponder];
    nameField.clearsOnBeginEditing = NO; //First text field
    [nameField resignFirstResponder];
    //[descriptionField becomeFirstResponder];
    descriptionField.clearsOnBeginEditing = NO; //second text dield
    [descriptionField resignFirstResponder];
    [super viewDidLoad];
}   

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

Я сделал вышеописанным способом, но клавиатура все еще не исчезает. И после ввода текста в textField1, когда я нажимаю клавишу возврата, курсор не собирается textField2. Как я могу заставить это работать?

Спасибо.

Ответы [ 2 ]

1 голос
/ 21 апреля 2010

Для задачи 1 проверьте свойство clearsOnBeginEditing текстового поля.

Для задачи 2 вы можете отправить сообщение resignFirstResponder в текстовое поле.

См. Раздел Управление клавиатурой в документации UITextField .

0 голосов
/ 21 апреля 2010

Я получил результат. Первым делом в моей ошибке я не добавил UITextFieldDelegate в интерфейс. А остальные я сделал изменения в коде.

- (void)viewDidLoad {
    self.title = @"Edit";
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Save" style:UIBarButtonItemStyleDone target:self action:@selector(save)];

    [nameField becomeFirstResponder];
    nameField.delegate = self;
    descriptionField.delegate = self;

    [super viewDidLoad];
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField {

    NSLog(@"Return Key Pressed");
    if (textField == nameField) {
        [nameField resignFirstResponder];
        [descriptionField becomeFirstResponder];
    }
    else if(textField == descriptionField){
    [descriptionField resignFirstResponder];
    }
    return YES;
}

После ввода текста в textField1, если я касаюсь возврата, курсор переходит к textFeild2. Это работает хорошо. Но когда я касаюсь экрана вне текстового поля, клавиатура не пропадает. Спасибо.

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