Я только что нашел ошибку в приложении, над которым я работаю, что, похоже, специфично для iOS 8, но я не могу понять причину или решение, поэтому любой совет будет очень признателен ,Switching keyboardType очищает текст TextField
Проблема: у меня есть вид, где пользователь вводит пароль. Когда текстовое поле активно, изначально мы показываем цифровую панель с кнопкой над клавиатурой, чтобы переключиться на клавиатуру алфавита. Вот код для нажатия кнопки для этой кнопки для переключения между клавиатурой qwerty и цифровой клавиатурой.
`UIButton * toggleButton = отправитель;
if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0f)
{
[self.passcodeField resignFirstResponder];
}
if (self.passcodeField.keyboardType == UIKeyboardTypeNumberPad) {
self.passcodeField.keyboardType = UIKeyboardTypeNamePhonePad;
[toggleButton setTitle: @"123" forState:UIControlStateNormal];
}
else {
self.passcodeField.keyboardType = UIKeyboardTypeNumberPad;
[toggleButton setTitle: @"ABC" forState:UIControlStateNormal];
}
if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0f)
{
[self.passcodeField becomeFirstResponder];
}
[self.passcodeField reloadInputViews];`
Проблема заключается в том, если я типа «123» в цифровую клавиатуру, переключатель к QWERTY-клавиатуре, как только я набираю один символ, он очищает первоначальный вход и заменяет его с новыми персонажами, а не добавив его. Я не уверен, почему, поскольку в моем контроллере просмотра нет кода, который очистит текст в passcodeField. Кто-нибудь знает, что может быть причиной этого?
Заранее спасибо ...
«Это не ошибка, это особенность!» :) – Vinzzz
Это не очень приятная функция. Это безопасное текстовое поле, поэтому это, вероятно, проблема. Какие-нибудь идеи об этой работе? Если я не сделаю вызовы уйти в отставку и стать первымResponder, в iOS8 клавиатура не изменится, поэтому она должна быть там. – SeanT
Я полностью понимаю вас, у нас была такая же проблема, просто с переключением с небезопасного на безопасный режим программно. По мере того, как я искал ее, нет «чистого» решения, но вы всегда можете запомнить текст перед отставкой и назначить его впоследствии. – hybridcattt