Клавиатура текстового поля iPhone AlertView не видна - PullRequest
3 голосов
/ 18 ноября 2011

У меня есть окно с предупреждением с добавленным полем uitext в качестве подпредставления.

В моем контроллере uitableview клавиатура работает нормально.

http://i301.photobucket.com/albums/nn76/hackmodford/c804bd91.jpg

Однако, с другой стороны, я хотел сделать то же самое. Поэтому вместо использования контроллера UITableView я сделал его UIViewController, чтобы добавить панель инструментов внизу представления.

Но когда я отображаю UIAlertView, клавиатура скрыта. Я думаю, что это позади представления, потому что представление предупреждения перемещается вверх, чтобы освободить место для клавиатуры.

http://i301.photobucket.com/albums/nn76/hackmodford/5680aaa2.jpg

Есть идеи?

UPDATE:

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

1 Ответ

5 голосов
/ 18 ноября 2011

Попробуйте реализовать метод didPresentAlertView: и внутри установите текстовое поле на firstResponder, например, так:

- (IBAction)someActionThatTriggersAnAlertView:(id)sender {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"TITLE" message:@"MESSAGE" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Done", nil];
    alert.alertViewStyle = UIAlertViewStylePlainTextInput;
    UITextField *someTextField = [alert textFieldAtIndex:0];
    someTextField.keyboardType = UIKeyboardTypeAlphabet;
    someTextField.keyboardAppearance = UIKeyboardAppearanceAlert;
    someTextField.autocorrectionType = UITextAutocorrectionTypeNo;
    [alert show];
    [alert release];
}

#pragma mark - UIAlertViewDelegate Methods

- (void)didPresentAlertView:(UIAlertView *)alertView {
    [[alertView textFieldAtIndex:0] becomeFirstResponder];
}

UIAlertView Документация
UIAlertViewDelegate Документация

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