QML-тип EnterKey

Контролирует внешний вид и поведение клавиши ввода в виртуальной клавиатуре. Подробнее...

Строка импорта: import Sailfish.Silica 1.0

Свойства

Сигналы

Подробное описание

Прикрепляемое свойство EnterKey предоставляет набор свойств для управления внешним видом и поведением клавиши Enter в виртуальной клавиатуре.

На страницах приложений ОС Аврора при отображении однострочных текстовых полей нажатие клавиши Enter (при условии, что текстовое поле имеет фокус) приводит к тому, что фокус перемещается к следующему текстовому полю. Если фокус находится на последнем (или единственном) текстовом поле на странице, то нажатие клавиши Enter закрывает виртуальную клавиатуру. Значок на клавише Enter может меняться в зависимости от требуемого поведения.

В примере ниже приведены три текстовых поля, которые управляют внешним видом и поведением клавиши Enter:

 import QtQuick 2.2
 import Sailfish.Silica 1.0

 Dialog {
     Column {
         width: parent.width

         DialogHeader {}

         TextField {
             width: parent.width
             placeholderText: "First name"
             label: placeholderText

             // Разрешать нажатие кнопки «Enter» только при наличии текста
             EnterKey.enabled: text.length > 0

             // Отображать значок «Next», чтобы указать на то, что нажатие кнопки «Enter»
             // переместит фокус клавиатуры на следующее текстовое поле
             EnterKey.iconSource: "image://theme/icon-m-enter-next"

             // При нажатии кнопки «Enter» фокус клавиатуры переносится
             // на следующее текстовое поле
             EnterKey.onClicked: lastNameField.focus = true
         }

         TextField {
             id: lastNameField

             width: parent.width
             placeholderText: "Last name"
             label: placeholderText

             EnterKey.enabled: text.length > 0
             EnterKey.iconSource: "image://theme/icon-m-enter-next"
             EnterKey.onClicked: emailField.focus = true
         }

         TextField {
             id: emailField

             width: parent.width
             placeholderText: "Email"
             label: placeholderText

             EnterKey.enabled: text.length > 0

             // Значок 'далее' означает, что нажатие клавиши Enter закроет
             // виртуальную клавиатуру
             EnterKey.iconSource: "image://theme/icon-m-enter-close"

             // При нажатии клавиши Enter виртуальная клавиатура закроется
             EnterKey.onClicked: focus = false
         }
     }
 }

Приложение также может выполнять некоторые действия после нажатия клавиши Enter на последнем текстовом поле. Например, если данные, вводимые пользователем на странице, предназначены для создания учетной записи, то нажатие клавиши Enter на последнем текстовом поле может принять диалог для создания этой учетной записи:

 Dialog {
     id: dialog

     Column {
         // [код для заголовка диалога (тип DialogHeader) и двух текстовых полей]

         TextField {
             id: emailField

             width: parent.width
             placeholderText: "Email"
             label: placeholderText

             EnterKey.enabled: text.length > 0
             EnterKey.iconSource: "image://theme/icon-m-enter-close"

             // При нажатии клавиши Enter диалог принимается
             EnterKey.onClicked: dialog.accept()
         }
     }

     // Создать учетную запись после принятия диалога
     onAccepted: createAccount()
 }

Описание свойств

enabled : bool

При значении true клавиша Enter включена (может быть нажата). С помощью этого свойства можно отключить клавишу Enter до ввода в текстовое поле допустимого значения.

Значение по умолчанию: true.

highlighted : bool

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

Значение по умолчанию: false.

iconSource : url

Заменяет метку на клавише Enter на значок по указанному URL.

В качестве значков рекомендуется использовать следующие URL из текущей темы:

  • "image://theme/icon-m-enter-close" - клавиша Enter закроет виртуальную клавиатуру;
  • "image://theme/icon-m-enter-next" - клавиша Enter переместит фокус на следующее текстовое поле;
  • "image://theme/icon-m-enter-accept" - клавиша Enter активирует действие (например, принятие диалога).

Например, в данном коде используется значок "далее" из темы Jolla.

 import QtQuick 2.2
 import Sailfish.Silica 1.0

 TextField {
     width: parent.width
     placeholderText: "First Name"

     EnterKey.enabled: text.length > 0
     EnterKey.iconSource: "image://theme/icon-m-enter-next"
     EnterKey.onClicked: lastName.focus = true
 }

text : string

Установка данного свойства переопределяет текст на клавише Enter. Примечание: размеры клавиши Enter могут варьироваться, поэтому длинный текст может не уместиться на клавише целиком.

Описание сигналов

onClicked()

Обработчик данного сигнала вызывается при нажатии клавиши Enter на виртуальной клавиатуре или нажатии клавиш Return или Enter на аппаратной клавиатуре.