Я получил TextView
, который должен отображаться при нажатии кнопки, и позволяет пользователю вводить текст с клавиатуры.
- (IBAction) changeName {
changeNameBtn.hidden = YES;
backBtn.hidden = YES;
usernameLabel.hidden = NO;
inputTextField.hidden = NO;
[inputTextField becomeFirstResponder]; // to show keyboard
}
Это работает отлично для большинства из нас.
Но клавиатура не отображается для некоторых моих тестеров в географически удаленном месте. Как бороться с этим? И что может быть причиной различного поведения наших устройств? Он отлично работает для меня и для всех остальных. Мы все используем те же устройства (iPod, iOS 4.1 - 5.1).
Первое, что я пробовал, не помогло:
Я предположил, что inputTextField каким-то образом не стал видимым во времени, перед тем как becomeFirstResponder
был запущен, поэтому я добавил setNeedsDisplay
, поскольку я думал, что это заставит обновление.
[inputTextField setNeedsDisplay];
[inputTextField becomeFirstResponder];
Вторая вещь, которую я пробовал, не работает:
if([inputTextField canBecomeFirstResponder]){
[inputTextField becomeFirstResponder];
}
Третья вещь, которую я пробовал, - это обходной путь, требующий, чтобы неудачный пользователь нажал поле:
- (IBAction) inputTextFieldTouch {
[inputTextField becomeFirstResponder];
}
Это обходное решение работает, но должен быть лучший способ. Пожалуйста, просветите меня о том, что я делаю неправильно!:) И как подойти к таким проблемам, не имея возможности сами его дублировать?