Как реализовать кнопку (с точки зрения пользовательского интерфейса)

Я разрабатываю (G) UI программы и наткнулся на проблему; Программа преобразует число в разные единицы, и формат единицы измерения будет следующим:

[Название объекта (при нажатии дает информацию)] [Особый статус, если есть] [Вывод в текстовом поле, которое также можно использовать для ввода (для преобразования в другие единицы)]

Я хочу, чтобы пользователь мог копировать выходной номер в буфер обмена без необходимости возиться с выделением и поиском нужных кнопок для нажатия. Итак, я подумал, что сделаю кнопку после поля вывода текста, говоря что-то вроде «C» или «Копировать».

Но вчера я читал о joelonsoftware.com и обнаружил, что пользователи кажутся неуклюжими с курсорами. И что я должен делать?

Я подумал о нескольких вариантах:

  1. Щелкните текстовое поле, чтобы скопировать его в буфер обмена - НО: я также хочу использовать его для ввода
  2. Нажатие цифры на клавиатуре, чтобы скопировать соответствующую - НО: Вероятно, их будет больше 10, и они мне нужны для нового ввода
  3. Кнопка большего размера "Копировать", как будто на самом деле говорит "Копировать" - Хм, это сработает? Я знаю, что мне нравится использовать клавиатуру, когда это возможно, поэтому было бы неплохо решить эту проблему.
  4. У каждого модуля будет свое собственное пространство, в которое поместится все (имя, текстовое поле и т. д.). Что, если он будет копироваться в буфер обмена при щелчке в любом месте этого пространства, кроме имени или текстового поля. - НО: Что делать, если вы пропустили, то есть щелкнули под одним текстовым полем и щелкнули над другим?
  5. Но как насчет выделения пространства юнита по ходу дела? - Еще может означать неприятности ...

Что вы думаете? Думаю, я мог бы выбрать № 3 - Большая кнопка копирования ..

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
565
5

Ответы 5

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

Есть ли проблема с копированием того, что находится в текстовом поле, когда они нажимают на него? Так что, если он используется для ввода? Они просто скопируют нужное им значение после, в которое они вводят значения.

Вы также можете указать ctrl-click или shift-click в текстовом поле для копии.

Большинство людей умеют копировать текст на своем компьютере. Возможно, лучшим решением будет просто автоматически выделить весь текст в текстовом поле, когда он получит фокус, чтобы они могли просто ctrl-c, чтобы скопировать, или начать вводить текст, чтобы начать ввод.

Я думаю, что решение №3 является лучшим в вашем списке, но я хотел бы увидеть набросок вашего графического интерфейса.

Клавиатура - лучший способ добиться максимальной скорости. Как насчет букв A-Z, чтобы вместо них скопировать текстовые поля? Пропустите «E», чтобы разрешить ввод научных обозначений. Потенциальная скорость высока, но обучаемость низкая. Я ожидаю, что пользователям будет сложно разобраться в этом пользовательском интерфейсе даже с пояснительным текстом на странице / в окне, и если пользователям придется читать пояснительный текст, то время, которое потребуется, скорее всего, сведет на нет экономию времени пользовательского интерфейса, если только пользователь все время использует приложение (Джоэл также правильно пишет, что пользователи ненавидят читать).

Для приложения, которое будет использоваться только изредка, большая кнопка - лучший выбор, чем больше, тем лучше, как предсказывает закон Фиттса. И обязательно обозначьте его «Копировать», а не «C» и не значок, чтобы максимально облегчить обучение. У других ваших идей есть проблемы с обучаемостью и терпимостью без скорости клавиатуры.

Тем не менее, я думаю, вы слишком далеко заходите в словах Джоэла. Конечно, вы хотите исключить ненужные щелчки, но типичный дизайн для этого типа приложения требует одного щелчка мышью по текстовому полю (которое по умолчанию должно выделять все значение), а затем один щелчок по пункту меню Копировать - или лучше, Alt- C или Ctrl-C с клавиатуры. Мне сложно представить себе задачу, в которой сохранение одного щелчка или пары нажатий на клавиатуру стоило бы множества кнопок копирования рядом с вашими текстовыми полями. У вас также будут кнопки для вставки и очистки? В какой-то момент беспорядок замедлит ваших пользователей больше, чем лишний щелчок.

Как часто пользователи будут копировать? Если это действительно десятки раз за сеанс, тогда вам следует переосмыслить весь подход к дизайну, потому что копирование и вставка Любые одного числа за раз будет утомительным. Возможно, вам стоит поддерживать пакетную обработку, принимая несколько чисел одновременно и выводя результаты в форме, уже подходящей для предполагаемого использования. Возможно, он будет работать в других приложениях, как это делает Enso: пользователь выделяет число в любом документе или текстовом поле любого приложения, команды Convert - Feet - Meters, и оно изменяется в документе или поле.

Хороший момент, о котором я тоже подумал, дело в том; Я уже думал об этом, и большая часть ввода будет буквами (надо было указать это в вопросе). Думаю, я пойду с большой кнопкой.

Jonta 20.11.2008 17:01

Что бы вы ни делали, важно использовать стандартные привязки событий клавиатуры и мыши ОС, а также предпочтительный внешний вид, иначе пользователи запутаются.

Нет ничего плохого в том, чтобы нажимать кнопку «Копировать» после каждого поля, если вы чувствуете, что это будет очень распространенная операция.

Однако два предложения:

  1. Что касается внешнего вида, убедитесь, что кнопка четко связана с полем. Для текстового поля лучший способ сделать это - поместить кнопку «Копировать» в текстовое поле (с правой стороны, но будьте готовы обрабатывать языки RTL, изменяя ее положение по мере необходимости!).

  2. Чтобы не делать его слишком большим, не используйте текст, а используйте стандартный значок Windows для копирования (например, этот: ) и поместите текст во всплывающую подсказку. Если вы сделаете это, вы также можете полностью избавиться от границы кнопки, еще больше уменьшив ее размер, хотя вам все равно понадобится какой-нибудь визуальный индикатор наведения, чтобы было ясно, что это активный элемент пользовательского интерфейса. Фактически, вы можете захотеть специально скопировать пользовательский интерфейс Vista / Win7 Explorer (также замеченный в IE7 / 8) для поля местоположения и значка перезагрузки в нем.

Другие вопросы по теме