Фокус (пользовательский интерфейс)

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
(жарг. Мохнатая кнопка)
Фокус на кнопке «Отмена». Нажатие ↵ Enter  будет равноценно клику мышью по этой кнопке.

Фокус, фокус ввода — концептуальное понятие в построении графического пользовательского интерфейса, означающее наличие у определённого элемента этого интерфейса исключительного права принимать клавиатурный ввод. Название является аллюзией на способность человеческого зрения фокусировать взгляд на небольшом участке поля зрения.

Не следует путать фокус с выделением — фокус распространяется на элементы интерфейса, в то время как выделение — на их содержимое. Кроме того, фокус всегда находится на каком-то строго одном элементе, тогда как выделение может быть множественным.

В вычислительной технике фокус указывает на выбор элемента графического интерфейса пользователя. Текст, введённый с клавиатуры или вставленный из буфера обмена, отправляется компоненту, у которого есть фокус. Перемещение фокуса с определённого элемента пользовательского интерфейса называется событием размытия (англ. blur) по отношению к этому элементу. Как правило, фокус снимается с элемента, отдавая фокус другому элементу. Это означает, что события фокуса и размытия обычно происходят практически одновременно, но в отношении разных элементов пользовательского интерфейса: один получает фокус, а другой размывается.

Концепция аналогична курсору в текстовой среде. Однако при рассмотрении графического интерфейса также задействован указатель мыши. Перемещение мыши обычно приводит к перемещению указателя мыши без изменения фокуса. Фокус обычно можно изменить, щёлкнув компонент, который может получить фокус с помощью мыши. Многие рабочие столы также позволяют изменять фокус с помощью клавиатуры. По соглашению, клавиша Tab ↹ используется для перемещения фокуса на следующий фокусируемый компонент, а ⇧ Shift+Tab ↹ — на предыдущий. Когда впервые появились графические интерфейсы, на многих компьютерах не было мышей, поэтому эта альтернатива была необходима. Эта функция упрощает использование пользовательского интерфейса для людей, которым сложно пользоваться мышью. В определённых обстоятельствах для перемещения фокуса также можно использовать клавиши управления курсором.

Смысл и предназначение[править | править код]

Пользовательский интерфейс может иметь несколько элементов, способных каким-либо образом реагировать на клавиатурный ввод. Однако, из соображений здравого смысла, при вводе с клавиатуры каких-либо данных (или команд) получать их должен какой-либо один элемент, из расположенных в окне, которому пользователь и адресует эти данные, осуществляя ввод. Поэтому при проектировании логики работы пользовательского интерфейса вводится понятия фокуса как совокупности:

  1. Визуальных признаков элемента, которые сообщают пользователю, что именно этот элемент получит вводимые с клавиатуры данные,
  2. Внутренних данных приложения, позволяющих той части компьютерной системы, которая отвечает за диспетчеризацию клавиатурных событий[1], переадресовать клавиатурные события непосредственно элементу.

Говорят, что элемент обладает фокусом или фокус находится на элементе, если при возникновении клавиатурного события именно этот элемент среагирует определённым образом на событие. Чтобы пользователь мог определить, какой из элементов в данный момент обладает фокусом, такой элемент обычно особым образом графически выделяется среди остальных аналогичных элементов.

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

Деактивированные элементы обычно не могут иметь фокуса.

Управление фокусом[править | править код]

Циклическое переключение фокуса с помощью клавиши Tab ↹.

Для увеличения удобства работы пользователю часто даётся несколько возможностей переключать фокус с одного элемента на другой. Разные операционные системы и приложения для них могут иметь разные способы. Обычно переместить фокус с одного элемента на другой можно при помощи определённых клавиш клавиатуры (например Tab ↹ и ⇧ Shift+Tab ↹ для переключения фокуса на следующий/предыдущий элемент в Windows), либо при помощи мыши. Существуют различные модели переключения фокуса мышью: так, например, в Windows или MacOS элемент получает фокус после щелчка мышью на нём; в некоторых менеджерах окон X11 достаточно просто поместить указатель мыши над элементом, чтобы он получил фокус.

Ссылки[править | править код]

Примечания[править | править код]

  1. Клавиатурное событие — нажатие, удержание или отпускание какой-либо клавиши или клавиш клавиатуры.