У меня есть приложение для iPhone, которое использует UISearchBar
и UISearchDisplayController
. В строке поиска есть три кнопки масштаба. Я бы хотел, чтобы клавиатура была цифровой клавиатурой, когда выбрана определенная кнопка области, но будет клавиатурой по умолчанию, когда выбрана любая другая кнопка области.
Я реализовал метод UISearchBarDelegate
selectedScopeButtonIndexDidChange:selectedScope
следующим образом:
- (void)searchBar:(UISearchBar *)searchBar selectedScopeButtonIndexDidChange:(NSInteger)selectedScope
{
switch (selectedScope) {
case DeviceIDScopeIndex:
searchBar.keyboardType = UIKeyboardTypeNumberPad;
break;
default:
searchBar.keyboardType = UIKeyboardTypeDefault;
break;
}
}
Я знаю, что метод вызван, и правильный случай срабатывает, когда выбранная кнопка выбрана. Но экранная клавиатура не изменяется, если я не коснусь кнопки "Отмена", чтобы скрыть клавиатуру, а затем снова коснитесь поля поиска, чтобы снова открыть клавиатуру.
Есть ли способ заставить клавиатуру изменить себя во время экранного экрана или программно скрыть его, а затем просмотреть его?