Ошибка пользовательского интерфейса с ABPeoplePickerNavigationController при представлении в листе модальной формы
Я вижу очень странную ошибку пользовательского интерфейса с ABPeoplePickerNavigationController на iPad (в альбомной ориентации), когда пользователь нажимает на панель поиска в PeoplePicker, а затем отменяет его, клавиатура не отключается, а пользовательский интерфейс средства выбора людей запутывается. Вот фото ошибки:
ABPeoplePickerNavigationController представлен в модальной форме листа с использованием следующего кода:
- (void) openAddressBook
{
ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
picker.peoplePickerDelegate = self;
picker.delegate = self;
[picker setModalPresentationStyle: UIModalPresentationFormSheet];
[self presentViewController:picker animated:YES completion: nil];
}
Пользовательский интерфейс остается ожидаемым до тех пор, пока пользователь не нажмет на поле поиска, которое выведет на экран клавиатуру, а затем отменит ее из поля поиска, что не приводит к отставке клавиатуры, как на iPhone. Кроме того, когда пользователь прокручивает список контактов в этом режиме, все заголовки букв (т. Е. Заголовок A) закрепляются там, где в настоящее время находится заголовок A, а не в верхней части представления непосредственно под панелью поиска.
Есть ли причина, по которой клавиатура не уходит в отставку?
Я испытываю затруднения при отладке этого, поскольку ABPeoplePickerNavigationController не подклассифицирован, поэтому любая помощь будет принята с благодарностью!
2 ответа
Вот как UIModalPresentationFormSheet
работает: по умолчанию клавиатура не сбрасывается при отставке первого респондента. Очевидно, что ABPeoplePickerNavigationController не ожидает, что будет использоваться таким образом. Мое предложение: не делай этого. Используйте поповер или обычный представленный вид. (Мой опыт показывает, что поповер выглядит лучше.)