TextField
Interaction
Engine\Native\TextField est un champ tappable qui ouvre un vrai clavier natif : il n'y a pas d'élément <input> du DOM sur lequel l'IME du système puisse s'attacher sur un Canvas, donc taper cette boîte dit à NativeRenderPocActivity de superposer un vrai android.widget.EditText exactement sur ce rectangle (voir showTextInput()). La valeur affichée avant focus est celle que PHP a communiquée en dernier ; la saisie est suivie côté client et n'atteint PHP que lorsqu'un Button avec une action submit: collecte la valeur courante de chaque champ.
Exemple
<?php
use Engine\Native\TextField;
$password = new TextField(
name: 'password',
value: '',
placeholder: 'Mot de passe',
obscure: true,
);Un champ de mot de passe masqué ; l'action générée sera focus:secure:password et déclenchera l'ouverture d'un clavier natif en mode masqué.
Constructeur
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
| name | string | — | Nom du champ, lu depuis $_GET à la requête suivante. |
| value | string | '' | Valeur actuellement connue par PHP. |
| placeholder | string | '' | Texte affiché quand la valeur est vide. |
| obscure | bool | false | Masque la valeur affichée (des points) et l'action générée porte secure:. |
| multiline | bool | false | Équivalent natif d'Engine\Textarea — boîte plus haute, texte aligné en haut, clavier multi-lignes. |
| height | float | 52.0 | Hauteur du champ (portée à 120 minimum en mode multiline). |
À savoir. L'action est composée dynamiquement (
focus:multiline:secure:{name}par exemple) — c'est ce préfixe queNativeRenderPocActivity.ktparse pour choisir le type d'EditTextà superposer, il ne s'agit pas d'une simple étiquette libre.