Cliente de entrada de texto Scribble
Añadir nuevos métodos a la interfaz TextInputClient para permitir que Scribble inserte o elimine marcadores de posición de texto y muestre la barra de herramientas.
Resumen
#Añade tres métodos, showToolbar, insertTextPlaceholder y
removeTextPlaceholder a la interfaz TextInputClient para permitir que la función
Scribble de iOS 14 inserte y elimine marcadores de posición de texto y muestre la barra de herramientas.
Contexto
#A partir de iOS 14, los iPads soportan la función Scribble al usar el Apple Pencil. Esta función permite a los usuarios utilizar el lápiz para interactuar con campos de texto para añadir, eliminar, seleccionar y modificar texto.
Descripción del cambio
#En los widgets de texto nativos, la barra de herramientas de texto se muestra cuando un usuario usa el lápiz
para seleccionar texto en un iPad con iOS 14 o superior.
Para replicar este comportamiento, la plataforma envía un mensaje de canal textInput
llamado TextInputClient.showToolbar.
Esto notifica al código de Dart que se debe mostrar la barra de herramientas.
Cuando un usuario mantiene presionado el lápiz, se muestra un espacio visual en el texto para permitir
al usuario espacio adicional para escribir.
Para replicar este comportamiento, la plataforma envía mensajes de canal textInput
llamados TextInputClient.insertTextPlaceholder y
TextInputClient.removeTextPlaceholder.
Las entradas de texto multilínea deben tener marcadores de posición que proporcionen espacio vertical,
mientras que las entradas de una sola línea deben proporcionar espacio horizontal.
Guía de migración
#Si anteriormente implementaste TextEditingClient, debes sobrescribir
showToolbar, insertTextPlaceholder y removeTextPlaceholder
para dar soporte a estas funciones de Scribble o proporcionar una implementación vacía.
Para migrar, implementa showToolbar, insertTextPlaceholder y
removeTextPlaceholder.
Código antes de la migración:
class MyCustomTextInputClient implements TextInputClient {
...
}
Código después de la migración:
class MyCustomTextInputClient implements TextInputClient {
...
@override
void showToolbar() {
...
}
@override
void insertTextPlaceholder(Size size) {
...
}
@override
void removeTextPlaceholder() {
...
}
}
Timeline
#Introducido en la versión: 2.9.0-1.0.pre
En el lanzamiento estable: 2.10
Referencias
#Documentación de la API:
Issues relevantes:
PRs relevantes:
A menos que se indique lo contrario, la documentación de este sitio refleja Flutter 3.44.0. Página actualizada por última vez el 2026-05-05. Ver código fuente oreportar un problema.