Как спрятать и показать клавиатуру одной и той же кнопкой - PullRequest
0 голосов
/ 13 мая 2011

У меня есть UITextField, что becomeFirstResponder при запуске приложения. Тогда у меня есть UIButton, который resignFirstResponder при нажатии.

Как скрыть и показать клавиатуру одной и той же кнопкой? Возможно ли это?

Ответы [ 3 ]

2 голосов
/ 13 мая 2011

Исходя из того, что вам нужно, следующий код должен иметь одну и ту же кнопку, чтобы скрывать и показывать клавиатуру для textField

if ([textField isFirstResponder]) {
    [textField resignFirstResponder];
} else {
    [textField becomeFirstResponder];
}

edit
Вы также можете вставить код для изменения названия кнопки в цикле if.
Подходящее место для размещения кода для изменения названия кнопки будет в методах делегата textField -textFieldDidBeginEditing: и -textFieldDidEndEditing:

0 голосов
/ 13 мая 2011
mytest.h

IBOutlet UITextField *myTextField;
IBOutlet UIButton *myButton

- (IBAction) showHideKeyBoard:(id)sender;

mytest.m

-(IBAction) showHideKeyBoard:(id) sender {

        if (myButton.selected) {
            // show the keyboard.
            [myTextField becomeFirstResponder];
            [myButton setTitle:@"Hide" forState:UIControlStateNormal];
            myButton.selected = NO;
        }else {
            // Hide the keyboard.
            [myTextField resignFirstResponder];
            [myButton setTitle:@"Show" forState:UIControlStateNormal];
            myButton.selected = YES;
        }
}
0 голосов
/ 13 мая 2011
-(IBAction) buttonPressed:(id) sender {
        UIButton *button = (UIButton *) sender;
        button.selected = !button.selected;
        if (button.selected) {
            // show the keyboard.
            [textField becomeFirstResponder];
        }else {
            // Hide the keyboard.
            [textField resignFirstResponder];
        }
}
...