Пользовательский контент
- 1 year ago
- 0
- 0
Фокус , фокус ввода — концептуальное понятие в построении графического пользовательского интерфейса , означающее наличие у определённого элемента этого интерфейса исключительного права принимать клавиатурный ввод . Название является аллюзией на способность человеческого зрения фокусировать взгляд на небольшом участке поля зрения.
Не следует путать фокус с — фокус распространяется на элементы интерфейса, в то время как выделение — на их содержимое. Кроме того, фокус всегда находится на каком-то строго одном элементе, тогда как выделение может быть множественным.
В вычислительной технике фокус указывает на выбор элемента графического интерфейса пользователя . Текст, введённый с клавиатуры или вставленный из буфера обмена , отправляется компоненту, у которого есть фокус. Перемещение фокуса с определённого элемента пользовательского интерфейса называется событием размытия ( англ. blur ) по отношению к этому элементу. Как правило, фокус снимается с элемента, отдавая фокус другому элементу. Это означает, что события фокуса и размытия обычно происходят практически одновременно, но в отношении разных элементов пользовательского интерфейса: один получает фокус, а другой размывается.
Концепция аналогична курсору в текстовой среде. Однако при рассмотрении графического интерфейса также задействован указатель мыши. Перемещение мыши обычно приводит к перемещению указателя мыши без изменения фокуса. Фокус обычно можно изменить, щёлкнув компонент, который может получить фокус с помощью мыши. Многие рабочие столы также позволяют изменять фокус с помощью клавиатуры. По соглашению, клавиша Tab ↹ используется для перемещения фокуса на следующий фокусируемый компонент, а ⇧ Shift + Tab ↹ — на предыдущий. Когда впервые появились графические интерфейсы, на многих компьютерах не было мышей, поэтому эта альтернатива была необходима. Эта функция упрощает использование пользовательского интерфейса для людей, которым сложно пользоваться мышью. В определённых обстоятельствах для перемещения фокуса также можно использовать клавиши управления курсором .
Пользовательский интерфейс может иметь несколько элементов, способных каким-либо образом реагировать на клавиатурный ввод. Однако, из соображений здравого смысла, при вводе с клавиатуры каких-либо данных (или команд) получать их должен какой-либо один элемент, из расположенных в окне , которому пользователь и адресует эти данные, осуществляя ввод. Поэтому при проектировании логики работы пользовательского интерфейса вводится понятия фокуса как совокупности:
Говорят, что элемент обладает фокусом или фокус находится на элементе , если при возникновении клавиатурного события именно этот элемент среагирует определённым образом на событие. Чтобы пользователь мог определить, какой из элементов в данный момент обладает фокусом, такой элемент обычно особым образом графически выделяется среди остальных аналогичных элементов.
Если система не предполагает наличие клавиатуры (даже виртуальной ) как устройства ввода, или в любой момент времени существует только один элемент, способный реагировать на клавиатурные события, понятие «фокус» в таких системах не имеет смысла и не используется.
Деактивированные элементы обычно не могут иметь фокуса.
Для увеличения удобства работы пользователю часто даётся несколько возможностей переключать фокус с одного элемента на другой. Разные операционные системы и приложения для них могут иметь разные способы. Обычно переместить фокус с одного элемента на другой можно при помощи определённых клавиш клавиатуры (например Tab ↹ и ⇧ Shift + Tab ↹ для переключения фокуса на следующий/предыдущий элемент в Windows ), либо при помощи мыши. Существуют различные модели переключения фокуса мышью: так, например, в Windows или MacOS элемент получает фокус после щелчка мышью на нём; в некоторых менеджерах окон X11 достаточно просто поместить указатель мыши над элементом, чтобы он получил фокус.
В большинстве основных пользовательских интерфейсов, например, созданных Microsoft и Apple часто можно найти политику «фокус следует за щелчком» (или «щелкнуть для фокусировки»), где нужно щелкнуть мышью внутри окна для этого окна. чтобы сосредоточиться. Это также обычно приводит к тому, что окно поднимается над всеми другими окнами на экране. Если используется модель clickfocus , то текущее окно приложения продолжает сохранять фокус и собирать ввод, даже если указатель мыши находится над окном другого приложения.
Другой распространённой политикой в системах Unix , использующих X Window System (X11) является политика «focus follows mouse» (Фокус следует за указателем) или FFM, при которой фокус автоматически следует за текущим расположением указателя. Окно в фокусе не обязательно поднимается, его части могут оставаться под другими окнами. Оконные менеджеры с этой политикой обычно предлагают «автоподъём», который поднимает окно, когда оно сфокусировано, обычно после настраиваемой короткой задержки. Возможное следствие политики followfocus состоит в том, что ни одно окно не имеет фокуса, когда указатель перемещается над фоном без окна под ним. В противном случае фокус просто остаётся в последнем окне.
Модель sloppyfocus — это вариант модели followfocus. Это позволяет продолжить сбор ввода последним окном в фокусе, когда указатель мыши перемещается от любого окна, например, над строкой меню или областью рабочего стола.