Прочие ограничивающие элементы управления вводом
Отказываясь от наследия традиционных элементов управления графи' ческого пользовательского интерфейса и багажа механических анало' гов, новое поколение экспериментальных пользовательских интер' фейсов порождает больше визуальных и жестовых идиом – от простых двухмерных панелей, где щелчок в любой точке определяет значения сразу для двух механизмов ввода (вертикальная и горизонтальная ко' ординаты определяют значения двух различных параметров), до более сложных интерфейсов непосредственного взаимодействия (см. приме' ры на рис. 21.18). Такие элементы управления обычно являются огра' ничивающими, поскольку их реализация требует внимательного изу' чения отношения между жестом мышью и функцией. Они часто содер' жат механизмы визуальной обратной связи. Кроме того, эти элементы управления лучше всего подходят для ситуаций, когда пользователю требуется управлять целым набором переменных и он готов потратить время и силы на изучение сложной идиомы.
![]() |
Рис. 21.18. Ableton Live – компьютерный инструмент для создания и испол- нения музыки, задействующий целый ряд двухмерных элементов управления вводом. Они предоставляют качественную визуальную обратную связь, позволяют пользователям регулировать сразу несколько параметров
и поддерживают выразительные жестовые взаимодействия. Их ограничи- вающая сущность сообщает пользователю о текущих настройках в контек- сте границ диапазонов и исключает возможность, что пользователь сдела- ет недопустимый выбор (композитору вряд ли понравится, если диалоговое окно вдруг прервет его работу)
Неограничивающий ввод: поля ввода текста
Первый из неограничивающих элементов ввода – поле ввода текста. Этот простейший элемент управления позволяет пользователям наби'
рать любые алфавитно'цифровые строки. Как правило, поля ввода – это небольшие области, внутри которых можно набрать одно'два сло' ва, но они могут быть реализованы и в виде довольно сложных тексто' вых редакторов. Пользователь может редактировать текст внутри по' лей, используя стандартные средства непрерывного выделения (см. главу 19), как с помощью мыши, так и с помощью клавиатуры.
Поля ввода текста часто применяются для ввода значений в приложе' ниях, основанных на базах данных (включая веб'сайты, в основе кото' рых лежит база данных), и имеют вид либо поля ввода текста в диало' говых окнах, либо комбо'списка. Независимо от роли поля редактиро' вания текста часто используются для организации ввода значений с ограничениями. Однако если множество допустимых значений огра' ничено, для них не следует использовать поля ввода текста. Если при' емлемые значения являются числовыми, используйте ограничиваю' щие числовые элементы ввода, такие как ползунки. Если в качестве приемлемых значений используется список текстовых строк, исполь' зуйте списочные элементы управления, чтобы пользователю не при' шлось набирать текст вручную.
Иногда набор приемлемых значений является конечным, но слишком большим, чтобы для его представления можно было использовать спи' сок. Например, программа может требовать ввода строки, состоящей из 30 алфавитных символов, исключая пробелы, символы табуляции и знаки препинания. В этом случае применение элемента текстового ввода, хотя и ограничивающего, вероятно, неизбежно. Но если это единственное ограничение, элемент ввода текста можно спроектиро' вать так, чтобы отклонять ввод неалфавитных символов и не позво' лять вводить строки длиннее 30 символов. Однако это порождает во' просы, связанные с проверкой допустимости введенных данных.
Проверка допустимости
Когда пользователю предложено неограничивающее текстовое поле ввода, которое при этом принимает лишь строки определенного форма' та, вероятно, имеется необходимость помочь пользователям конструи' ровать «допустимые» строки. Как правило, приложение оценивает ввод пользователя, когда он закончил набор, и выбрасывает сообщение об ошибке, если ввод неправильный. Очевидно, это может раздражать пользователей и, в конечном счете, снижать их производительность.
Как мы уже упоминали, лучшее решение этой проблемы – использо' вать ограничивающие элементы ввода и сделать ввод недопустимых строк невозможным. (Распространенный пример: раскрывающийся список месяцев, освобождающий пользователя от необходимости без ошибок набирать слово «февраль».)
В других случаях это не всегда практично (ввод регистрационного клю' ча на экране регистрации приложения). Программисты справляются с дилеммой, создавая элементы ввода с проверкой данных, которые
являются разновидностью неограничивающих полей текстового ввода со встроенной проверкой допустимости ввода и обратной связью. Име' ется множество стандартных форматов вводимых данных – даты, теле' фонные номера, почтовые индексы, номера социального страхования. На рынке есть коммерческие специализированные элементы ввода тек' ста; вы можете приобрести варианты полей текстового ввода, которые, к примеру, позволяют осуществлять ввод только чисел или телефон' ных номеров либо не дают вводить символы пробела и табуляции.
Хотя проверка допустимости при вводе – весьма распространенная идиома, большинство таких элементов управления оставляют желать лучшего. Ключ к успешному проектированию элемента ввода с про' веркой данных – в хорошо развитой обратной связи с пользователем. Элемент ввода данных, просто отвергающий введенные данные, тем самым грубит пользователю и гарантированно злит и обижает его.
Одно из фундаментальных улучшений основано на следующем прин' ципе проектирования: элементы, различающиеся поведением, должны различаться и визуально (см. главу 14). Следует визуально отделить поля ввода, осуществляющие проверку допустимости данных, от обыч' ных элементов ввода, используя шрифт, цвет границы или фон поля.
Однако главное направление совершенствования – обеспечение обога' щенной обратной связи с пользователем. К сожалению, существующие сегодня элементы текстового ввода практически не имеют встроенных средств для организации какого'либо рода обратной связи. Проекти' ровщики должны подробно описывать такие механизмы, а программи' стам, вероятно, придется реализовывать их в специально разработан' ных элементах ввода.