Если для клиентского кода важно знать различие между найденным и не найденное, и это, как предполагается, стандартное поведение, то лучше возвращать пустой указатель. Клиентский код может тогда решить, что сделать.
Самый безопасный и простой метод - отследить, когда клавиатура скрывается / отображается.
- (void)keyboardWillHide:(NSNotification *)notification
{
peoplePickerController.navigationBar.hidden = YES;
}
- (void)hideNavbarAndKeepHidden
{
peoplePickerController.navigationBar.hidden = YES;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
}
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
[super dealloc];
}
Если вы считаете, что это ошибка, отправьте ее на http://bugreporter.apple.com .
Для меня это тоже звучит как ошибка, но я бы дважды сверился с документацией, чтобы убедиться. Если там ничего не упоминается, я предлагаю сообщить об ошибке.
Изменить: С другой стороны, я считаю, что установка скрытой панели навигации - плохая идея. Есть ли особая причина для его скрытия?