Активация UISearchBar при выборе элемента панели вкладок - Справка или помеха?

Я работаю над приложением , где меня попросили добавить UITabBarItem к нашему приложению Tab Bar со своей выделенной функцией поиска. Это в дополнение к встроенным поискам уже по всему приложению (нажав на другие UITabBarItem и поиск других UITableView ).

Теперь первое, что приходит на ум, - это Руководство по интерфейсу пользователя Apple ( HIG ), в котором говорится:

«Избегайте использования вкладки для поиска, если она не является основной функцией в вашем приложении, которая должна быть представлена ​​в отдельном режиме».

Таким образом, преобладающая мысль - избегать, но это не жесткое и быстрое правило. Тем не менее, я довел это до сведения клиента. Они ответили: «Мы обеспокоены тем, что люди не узнают, как искать в других UITabBarItem и UITableView ». Мой ответ: «Собственные приложения Apple предлагают такой вид поиска. Любой, кто уже использует эти приложения, будет знать, как использовать ваши. Именно поэтому мы хотим, чтобы UE было последовательным и стремилось следовать HIG». (Не говоря уже о требовании одобрения магазина приложений, но я отвлекся.)

Хорошо ... их второй ответ был: «Хорошо, это имеет смысл, но мы также хотим, чтобы люди могли выполнять поиск по всему контенту, а не только по отдельным темам в разных табличных представлениях».

Очень хорошо. Глобальный поиск это. :)

Ища пример с выделенным поиском UITabBarItem , я следовал за собственной моделью App Store iPhone. Я очень доволен результатом интерфейса. При вводе текста в UISearchBar вы получаете простой текстовый список имен для поиска по мере ввода (в комплекте с минимальной задержкой ввода, чтобы не перегружать поисковый сервер). Вы можете настроить текст для поиска, нажать одно из предложений, чтобы использовать вместо вашего поискового запроса, или просто нажмите кнопку поиска прямо. Список результатов затем заменяется более сложным набором результатов, который ищется более полнотекстовым способом, с иконками и кусочками полезных метаданных в каждой ячейке. Обычные ингредиенты. Нажав на UISearchBarвозвращает только текстовые предложения. Отмена поиска удаляет все. Если оставить его в покое, последний запрос (список результатов) останется доступным для отображения.

Так что я представил это клиенту ... и ... им это нравится !! У них есть только один последний запрос: «Может ли клавиатура всплыть сразу же, когда мы выбираем выделенный Search UITabBarItem ? Прямо сейчас нам нужно нажать на UISearchBar , но это слишком много».

(Предположительно, они бы хотели, чтобы это произошло, только если в игре нет уже существующего поиска.)

Сначала я думал, что это правдоподобно ... но потом я посмотрел на другие приложения. Я не мог найти никого , кто это делает. Даже приложение App Store требует, чтобы вы нажали UISearchBar, чтобы вызвать клавиатуру. Плюс, HIG говорит так же:

«Когда пользователь нажимает на строку поиска, появляется клавиатура».

Не «когда пользователь касается поиска UITabBarItem , появляется клавиатура».

Кроме того, пользовательские интерфейсы должны быть прощающими. Что если вы допустили ошибку и намеревались выбрать другой элемент в списке « Больше» ? (Или, если это было на панели вкладок, что, если вы хотели выбрать другой UITabBarItem ?) Теперь вам нужно остановить и отменить поиск, чтобы закрыть клавиатуру, даже если вы не хотели ее вызывать.

В заключение я немного разорван и хочу получить представление о лучших практиках и других POV. Что бы вы сделали в этой ситуации?

2 ОТВЕТА

Кто-то просто поделился со мной интересной идеей. Если вы нажмете и удержите опцию поиска на несколько секунд дольше, чем обычно, или если вы дважды нажмете на нее, это может стать нашей подсказкой для автоматического вызова клавиатуры. В противном случае он ведет себя так же, как и остальная часть экосистемы пользовательского интерфейса iPhone.

До тех пор, пока можно обнаружить мгновенное удержание или двойное нажатие UITabBarItem и UITableViewCell , это звучит правдоподобно. IPhone эквивалент удержания Option или Cmd.

Еще одно предложение: если опция «Поиск» находится в списке « Дополнительно» , поднимите клавиатуру. Если он находится на панели вкладок надлежащего (поскольку пользователь положил его там), не показывают клавиатуры на первом. (Хм. Это кажется немного противоречивым, но я упоминаю это здесь для полноты.)

Мысли?

0
3.09.2009 20:05:56
Аргумент против нажатия и удержания: уже используется для переключения редактирования в представлениях таблицы. Аргумент против двойного нажатия: Не удается создать подкласс или использовать категорию в табличном представлении moreNavigationController, поскольку он недоступен. Так что либо мы расходимся с тем, что Apple делает с поисковым пользовательским интерфейсом App Store, либо мы остаемся последовательными.
Joe D'Andrea 3.09.2009 20:32:07

Несколько ответов, в основном игнорирующих, следует ли вам делать это на самом деле:

Вы можете заставить клавиатуру появляться автоматически, установив поле поиска в качестве первого респондента:

[mySearchField becomeFirstResponder];

Большинство элементов, которые вы можете иметь на панели вкладок, - пять, и если у вас их больше пяти, вы получите только четыре, поскольку элемент «Больше» занимает место. Документация UITabBar для itemsсобственности заявляет:

Элементы, экземпляры UITabBarItem, которые отображаются на панели вкладок в том порядке, в котором они отображаются в этом массиве.

Следовательно, вы можете определить, находится ли элемент поиска на панели (а не в разделе «Дополнительно») следующим образом (код предполагает, что он находится в контроллере представления поиска):

UITabBarItem *item = [self tabBarItem];
NSInteger indexOfTabBarItem = [[tabBar items] indexOfObject:item];
BOOL isInMainTabBar = (indexOfTabBarItem > -1) && (indexOfTabBarItem < 4);

Лично я считаю, что не так уж плохо показывать клавиатуру автоматически при первом входе на страницу поиска, поскольку это все, что вы собираетесь делать. Конечно, проблема в том, что если вы просто нажимаете на случайный материал, чтобы посмотреть, что он делает, будет сложно отменить поиск, чтобы вы могли возобновить случайный щелчок.

Изменить: Черт, я неправильно понял ваш вопрос - я думал, что вы ищете технический совет. Ну ... это может быть полезно для кого-то!

0
3.09.2009 20:17:34
Спасибо! Да, из технического POV, я покрыта, но приятно видеть, что ваш совет совпадает. Плюс, другие, читающие это, могут не знать, поэтому это ценится независимо! Часть меня хочет избежать путаницы в уже существующей экосистеме, но другая часть понимает желание, чтобы эта клавиатура появилась. (См. Мой ответ о двойном нажатии в качестве альтернативы ... только как вы это делаете в moreNavigationController UITabBar? Не можете создавать подклассы и не можете использовать категории!)
Joe D'Andrea 3.09.2009 20:30:07