¿Centrarse en "InputField" al momento de la creación? [duplicar]

Aug 17 2020

Digamos que creamos un campo de entrada como

InputField[]

Después de presionar Enter, el campo de entrada aparece en el área de salida a continuación, sin embargo, el foco en el cuaderno salta directamente a la siguiente línea, donde se puede crear una nueva celda. ¿Hay alguna manera de crear un InputFielde inmediatamente seleccionarlo para enfocarlo en la creación (sin tener que hacer clic en él), de modo que el texto se pueda escribir inmediatamente en el InputField?

Respuestas

4 kglr Aug 18 2020 at 05:22

Puede asignar un ID de cuadro a un campo de entrada usando BoxID -> "id"y usar la función FrontEnd`MoveCursorToInputFieldpara mover el foco al campo de entrada deseado:

InputField[Null, BoxID -> "id"]
FrontEnd`MoveCursorToInputField[EvaluationNotebook[], "id"];

Otro ejemplo:

Grid[{{InputField[Dynamic[x]], InputField[Dynamic[y], BoxID -> "ify"],
    InputField[Dynamic[z]]}}]
FrontEnd`MoveCursorToInputField[EvaluationNotebook[], "ify"]; 

Alternativamente, resalte el contenido de la celda y use Ctrl+ Shift+ Enterpara evaluar en su lugar: